Précédent   Forum du club des développeurs et IT Pro > Webmasters - Développement Web > AJAX
AJAX Forum sur la programmation AJAX. Avant de poster : Cours AJAX, FAQ AJAX, Toutes les FAQ JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 18/12/2012, 10h07   #1
Akim13
Inscrit
 
Inscription : septembre 2005
Messages : 285
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 285
Points : 104
Points : 104
Par défaut Réception des données avec POST (ne fonctionne pas)

Bonjour,

J’utilise ce petit script pour envoyer des données à ma base mysql.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
<script type="text/javascript" charset="ISO-8859-1">
img = document.getElementById("resultat");
if(window.XMLHttpRequest) 
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) 
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
nocache = Math.random();
var data1 = 'exemple_15000_caracteres';
xhr_object.open('POST', 'teste_load.php?data1=' + data1, true);
xhr_object.send(null);
res = ""+xhr_object.responseText;
img.innerHTML += res;
img = "";
</script>
Quand j’utilise GET cela fonctionne avec des données minime, mais quand les données sont un peut lourd, j’ai une erreur
Request-URI Too Large

Donc j’essaye d’utilisé POST a la place de GET, le problème est que je ne reçois pas les données sur ma page PHP.

Avez-vous une idée SVP.

Merci d'avance
Akim13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 10h10   #2
Michaeljackfan
Membre habitué
 
Étudiant
Inscription : décembre 2006
Messages : 114
Détails du profil
Informations personnelles :
Âge : 24
Localisation : Suisse

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2006
Messages : 114
Points : 112
Points : 112
Envoyer un message via MSN à Michaeljackfan
Lorsque tu envoies des données par POST, tu dois donner un entête.

Code :
1
2
3
xmlhttp.open("POST","ajax_test.asp",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("fname=Henry&lname=Ford");
Michaeljackfan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 10h15   #3
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 070
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 070
Points : 64 461
Points : 64 461
Surtout, comme l'a corrigé Michaeljackfan mais sans le détailler, les paramètres doivent être passés via la méthode send() et non dans l'URL (sinon, ça sert à rien de faire du POST )
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 11h40   #4
Akim13
Inscrit
 
Inscription : septembre 2005
Messages : 285
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 285
Points : 104
Points : 104
Merci pour vos réponses

Mais impossible de déclarer xmlhttp.

Car j’ai une erreur xmlhttp is not defined
Akim13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 11h50   #5
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 070
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 070
Points : 64 461
Points : 64 461
Regarde peut-être ton code...
Toi tu as xhr_object...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 12h01   #6
Golgotha
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Artiste développeur
Inscription : août 2007
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme cédric
Localisation : France

Informations professionnelles :
Activité : Artiste développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 1 045
Points : 2 081
Points : 2 081
Envoyer un message via Skype™ à Golgotha
Mais pourquoi faire du XMLHttpRequest à la main en 2012

jQuery
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Suivez mon blog
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 12h40   #7
Akim13
Inscrit
 
Inscription : septembre 2005
Messages : 285
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 285
Points : 104
Points : 104
Merci pour la suggestion, maintenant je dois comprendre donc je fais des recherches (c’est en cours).

Mais j’ai une question:
Pour quoi choisir du jQuery ?
Akim13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 13h40   #8
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 070
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 070
Points : 64 461
Points : 64 461
Citation:
Envoyé par Golgotha
Mais pourquoi faire du XMLHttpRequest à la main en 2012
Ben... parce qu'en 2012, avec IE6 à moins de 0.5% de parts de marché, AJAX c'est aussi simple que
Code :
var xhr = new XMLHttpRequest();
et qu'utiliser jQuery uniquement pour se simplifier cette syntaxe, c'est aberrant !

Ensuite, il peut exister d'autres raisons d'utiliser jQuery et donc de s'en servir pour traiter AJAX, mais traiter AJAX n'est pas une raison suffisante pour utiliser un framework.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 14h20   #9
Golgotha
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Artiste développeur
Inscription : août 2007
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme cédric
Localisation : France

Informations professionnelles :
Activité : Artiste développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 1 045
Points : 2 081
Points : 2 081
Envoyer un message via Skype™ à Golgotha
Personnellement, même un document.getElementById justifie pleinement jQuery.

Enfin bref. Illustration.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<script type="text/javascript">
function exemple()
{
obj = document.getElementById("resultat");
 
obj.innerHTML = "Avant la requete : OK<br />";
if(window.XMLHttpRequest) // FIREFOX
xhr_object = new XMLHttpRequest();
else if(window.ActiveXObject) // IE
xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
else
return(false);
 
xhr_object.open("GET", "/misc/ajax_test.php", false);
xhr_object.send(null);
 
obj.innerHTML += "Apres la requete : OK<br />";
 
res = "Contenu du fichier : "+ xhr_object.responseText;
obj.innerHTML += res;
 
}
</script>
<a href="javascript:exemple()"
ou :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<script type="text/javascript">
function exemple()
{
 
var obj = $("#resultat");
 
obj.html("Avant la requete : OK <br/>");
 
$.get("/misc/ajax_test.php", function(data){
 
	obj.html("Apres la requete : OK <br />");
 
	res = "Contenu du fichier : " + data;
	obj.append(res);
});
 
 
}
</script>
<a href="javascript:exemple()">Hop, on essaye !</a>
<div id="resultat"></div>
c'est tout vu
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Suivez mon blog
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h19   #10
andry.aime
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 6 334
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 6 334
Points : 9 923
Points : 9 923
Citation:
Envoyé par Golgotha Voir le message
Personnellement, même un document.getElementById justifie pleinement jQuery.
Une fonction javascript est composé de plusieurs instructions, mais l'utilisation de jQuery pour quelques fonctionnalités basique est abusif.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 16h46   #11
Golgotha
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Artiste développeur
Inscription : août 2007
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme cédric
Localisation : France

Informations professionnelles :
Activité : Artiste développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 1 045
Points : 2 081
Points : 2 081
Envoyer un message via Skype™ à Golgotha
Citation:
Envoyé par andry.aime Voir le message
Une fonction javascript est composé de plusieurs instructions, mais l'utilisation de jQuery pour quelques fonctionnalités basique est abusif.
Je ne comprends pas pourquoi on utilise le mot abusif.. en quoi est ce abusif de vouloir écrire d'un certaine façon son code plutôt qu'une autre.

Nombre de langage s'appuient sur des bibliothèques en C, donc on pourrait dire pareil finalement, quand on fait un petit programme en python, il est abusif d'utiliser python, autant écrire en C. Je vois plus jQuery comme un langage de plus haut niveau (même si ce n'est pas le cas) qui me permet d'écrire de façon plus claire et plus simplement.

Si l'abus viens de l'import de la lib, ça ne me parait pas assez peser dans la balance, à l'heure ou en visionne une video en HD en temps réèl sur YouTube.
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Suivez mon blog
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 17h55   #12
andry.aime
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 6 334
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 6 334
Points : 9 923
Points : 9 923
Ben là tu compares un langage de haut niveau avec celui du bas niveau sur lequel on l'a développé. Ici c'est le même langage mais seulement natif vs framework.
J'ai parlé d'abus parce que si ce n'est que pour l'utilisation de l'ajax et les instruction comme getElementById, c'est comme disait un membre
Citation:
C'est sortir un cuirassé pour tuer une mouche.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 18h00   #13
Bovino
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 18 070
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 42
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 18 070
Points : 64 461
Points : 64 461
Citation:
Si l'abus viens de l'import de la lib, ça ne me parait pas assez peser dans la balance
Ca me rappelle mon ancien patron qui pour envoyer un mail d'une ligne, créait un document Word...
Du coup, on recevait un message sans titre contenant uniquement un document "Document sans nom.doc" qui contenait juste une ligne de texte...

Mais bon, on arrivait quand même à les lire...
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2012, 18h23   #14
Golgotha
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Artiste développeur
Inscription : août 2007
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme cédric
Localisation : France

Informations professionnelles :
Activité : Artiste développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 1 045
Points : 2 081
Points : 2 081
Envoyer un message via Skype™ à Golgotha
Citation:
Envoyé par Bovino Voir le message
Ca me rappelle mon ancien patron qui pour envoyer un mail d'une ligne, créait un document Word...
Du coup, on recevait un message sans titre contenant uniquement un document "Document sans nom.doc" qui contenait juste une ligne de texte...

Mais bon, on arrivait quand même à les lire...
Maintenant je serais comment formuler mes mails
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Suivez mon blog
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 00h54   #15
christele_r
Membre Expert
 
Avatar de christele_r
 
Femme Christele Rubneau
Inscription : novembre 2009
Messages : 1 051
Détails du profil
Informations personnelles :
Nom : Femme Christele Rubneau
Âge : 40
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2009
Messages : 1 051
Points : 1 426
Points : 1 426
Citation:
Envoyé par Golgotha Voir le message
Mais pourquoi faire du XMLHttpRequest à la main en 2012
jQuery
Moi avec mon métier c'est encore a la main, ce n'est pas une question de 2012 ou pas, c'est une question que ces outils qui ralentissent la procédure
(je parle des xxx.js) ont l'énorme avantage de simplifier la tâche des petits programmeurs.

Bref chacun son choix ...

A++
Christele
christele_r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 09h19   #16
Golgotha
Modérateur
 
Avatar de Golgotha
 
Homme cédric
Artiste développeur
Inscription : août 2007
Messages : 1 045
Détails du profil
Informations personnelles :
Nom : Homme cédric
Localisation : France

Informations professionnelles :
Activité : Artiste développeur
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2007
Messages : 1 045
Points : 2 081
Points : 2 081
Envoyer un message via Skype™ à Golgotha
Citation:
Moi avec mon métier c'est encore a la main, ce n'est pas une question de 2012 ou pas, c'est une question que ces outils qui ralentissent la procédure
(je parle des xxx.js) ont l'énorme avantage de simplifier la tâche des petits programmeurs.
Je suis démasqué... j'utilise jQuery parce-que le javascript est bien trop complexe pour moi
__________________
modérateur webmasters - développements web & php
faq jQuery - règles du forum - faqs web
mon espace perso
Suivez mon blog
Golgotha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/12/2012, 16h53   #17
Akim13
Inscrit
 
Inscription : septembre 2005
Messages : 285
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 285
Points : 104
Points : 104
Voila j’ai fait mon petit script.
J' l'affiche ici si des suggestions.

Merci a vous tous

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
 
 
	function exemple()
	{
		if(sql_data_send.length > 6000)
		{
				jQuery.ajax(
				{
						type: 'POST',
						url: 'teste_db.php',
					data: 
					{
						sql_data_send: sql_data_send,
						id_id: id1,
						admin: true
					}, 
					success: function(data, textStatus, jqXHR) 
					{
						if (NB_produits == table.getCount())
						{
							document.getElementById('count_produit_send').innerHTML = 'Fini';
						}
						else
						{
							document.getElementById('count_produit_send').innerHTML = id1+' / '+data+'  N°: '+NB_produits+' / '+table.getCount();
						}
					},
					error: function(jqXHR, textStatus, errorThrown) 
					{
					}
				});
		}
		else
		{
		 img_now = document.getElementById("count_produit_send").innerHTML;
		if(document.getElementById("count_produit_send").innerHTML == null){
			img_now = "---";
		}
			img_now = "Avant la requete : OK<br />";
			if(window.XMLHttpRequest) 
			xhr_Sql = new XMLHttpRequest();
			else if(window.ActiveXObject) 
			xhr_Sql = new ActiveXObject("Microsoft.XMLHTTP");
			else
			return(false);
			nocache = Math.random();
			var img_url = obj.getCellText(10, row);
			var img_cat1 = ID_cat1;
			var img_cat2 = ID_cat2;
			var img_cat3 = ID_cat3;
			var id_id = id1;
			var uri_img = 'teste_db.php?sql_data_send='+sql_data_send+'&id_id='+id_id;
			xhr_Sql.open('GET', encodeURI(uri_img), false);
			xhr_Sql.send(null);
			sql_data_send = "";
			res = ""+xhr_Sql.responseText;
						if (NB_produits == table.getCount())
						{
							document.getElementById('count_produit_send').innerHTML = 'Fini';
						}
						else
						{
							document.getElementById('count_produit_send').innerHTML = id1+' / '+data+'  N°: '+NB_produits+' / '+table.getCount();
						}
			img_now.innerHTML += res;
			img_now = "";
		}
 	}
Akim13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 10h55   #18
andry.aime
Rédacteur/Modérateur
 
Avatar de andry.aime
 
Homme Andry Aimé
Inscription : septembre 2007
Messages : 6 334
Détails du profil
Informations personnelles :
Nom : Homme Andry Aimé
Localisation : Ile Maurice

Informations forums :
Inscription : septembre 2007
Messages : 6 334
Points : 9 923
Points : 9 923
Tu utilises déjà jQuery, pourquoi utiliser encore XMLHttpRequest?
Citation:
img_now.innerHTML += res;
un objet string n'a pas d'attribut innerHTML.

A+.
andry.aime est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2012, 13h19   #19
Akim13
Inscrit
 
Inscription : septembre 2005
Messages : 285
Détails du profil
Informations forums :
Inscription : septembre 2005
Messages : 285
Points : 104
Points : 104
Salut,

Le problème avec Jquery et que je ne reçois pas la réponse de la page php.
Il me dit que tous les articles en été envoyer alors quand j’actualise la base de donné directement dans phpmyadmin, je vois que les articles arrive doucement.
Alors qu’avec le vieux script je vois en temps réel (le prochain article n’est pas envoyer tant que précédent n’a pas été injecter).


Code php :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
if(isset($_POST['sql_data']))
{
$sql_data = $_POST['sql_data'];
$mysqli = new mysqli(_DB_SERVER_, _DB_USER_, _DB_PASSWD_, _DB_NAME_);
	if (get_magic_quotes_gpc()) $sql_data = stripslashes($sql_data);
if (mysqli_connect_errno()) {
	//printf("Connect failed: %s\n", mysqli_connect_error());
	exit();
}
$mysqli->multi_query("SET NAMES UTF8");
$query  = $sql_data;
if ($mysqli->multi_query($query)) {
	do {
		if ($result = $mysqli->store_result()) {
			while ($row = $result->fetch_row()) {
				//printf("%s\n", $row[0]);
			//	printf("%s\n", $row[0]);
			//	echo "<div id='count_produit_send'></div>";
			}
			$result->free();
		}
		if ($mysqli->more_results()) {
		//	printf("<div id=\'count_produit_send\'></div>\n");
		}
	} while ($mysqli->next_result());
}
$sql_data = "	envoyer ok";
//	$mysqli->close();
}
Akim13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 06h45.


 
 
 
 
Partenaires

Hébergement Web