Récupérer variable POST en AJAX

Fermé
Trezegoals - 14 juin 2010 à 12:26
 th@o - 24 juin 2010 à 17:47
Bonjour,

J'ai un problème pour récupérer mes données en POST en AJAX.

Voici ma fonction ajax :
function requestPOST (url,cadre) 
{

	var XHR = null;

	if(window.XMLHttpRequest) // Firefox
		XHR = new XMLHttpRequest();
	else if(window.ActiveXObject) // Internet Explorer
		XHR = new ActiveXObject("Microsoft.XMLHTTP");
	else 
	{ // XMLHttpRequest non supporté par le navigateur
		alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
		return;
	}
	 // envoie de la requête, methode GET et de l'url
	XHR.open("POST",url, true);

	// on guette les changements d'état de l'objet
	XHR.onreadystatechange = function attente()
	{

		// l'état est à 4, requête reçu !
		if(XHR.readyState == 4)     
		{
			// ecriture de la réponse
			document.getElementById(cadre).innerHTML = XHR.responseText;
		}
	}
	var namevalue=encodeURIComponent(document.getElementById("nom").value);
	var prenomvalue=encodeURIComponent(document.getElementById("prenom").value);
	var dateNaissvalue=encodeURIComponent(document.getElementById("dateNaiss").value);
	var parameters="nom="+namevalue+"&prenom="+prenomvalue+"&dateNaiss="+dateNaissvalue;

	
	XHR.send(parameters); // le travail est terminé
	return;
}


Mon formulaire :
	echo "<form method ='POST' action=\"javascript:requestPOST('include/fonctions.php','left');\"><TABLE>
	<TR><td>Nom : </td><td><input type='text' name='nom' id='nom' /></td></TR>
	<TR><td>Prénom : </td><td><input type='text' name='prenom' id='prenom' /></td></TR>
	<TR><td>Date de naissance : </td><td><input type='text' name='dateNaiss' id='dateNaiss' /></td></TR>
	<TR><br /><input type='submit' name='ajouterClient' value='Ajouter'/></TR>
	</TABLE></form>";


Et mon fichier fonctions.php :
if(isset($_POST['nom']))
	echo "ca marche !";


Lorsque que je fais un alert des parameters dans la fonction JS, ca m'affiche bien les paramètres, mais pas moyen de les récupérer en POST.

Quelqu'un voit l'erreur ? ^^
Merci !

7 réponses

naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
Modifié par naruto-94 le 14/06/2010 à 14:16
je ne savais pas qu'on pouvais utiliser XHR. tout court au lieu de xhr_object.

sinon pour ton problème met
xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

avant XHR.send
1
Utilisateur anonyme
14 juin 2010 à 15:05
"je ne savais pas qu'on pouvais utiliser XHR. tout court au lieu de xhr_object"

xhr_object étant une variable, tu peux l'appeller comme tu veux ...
0
naruto-94 Messages postés 865 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 20 décembre 2012 188
14 juin 2010 à 15:42
ah ouai j'suis beteeeeeee , on va dire que j'ai rien dit :p
0
il faut envoyer tes parametres avant de recupere les données....
1
autre probleme il faut un ; quelque par :
XHR.onreadystatechange = function attente()
{

// l'état est à 4, requête reçu !
if(XHR.readyState == 4)
{
// ecriture de la réponse
document.getElementById(cadre).innerHTML = XHR.responseText;
}
}; <---------<------<----- ici
1
en plus losque l'on appele une fonction comm ca :
XHR.onreadystatechange = function attente()
	{

il est plus preferable d'ecrire
XHR.onreadystatechange = function {

: pas de nom ni de parrantheses ();
0
dsl je me tromper c'est :
XHR.onreadystatechange = function() {

mais pas de nom
0
Merci à naruto ca a marché nikel !
Merci beaucoup aux autres qui ont répondu également, mon problème est résolu.
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Profil bloqué
23 juin 2010 à 14:08
c'est quoi se truc en php c'est pourquoi fait cette fonction
0
1. ceci n'est pas du php mais du javascript et plus particulierement une thecnique qui d'appele le AJAX (google est ton amis).
2. cette fonction permet de recupere des données qui sont traité par la page appler par se script
voila
0
mais elle appele des fichier .php
0
informaticiensystem32
24 juin 2010 à 08:21
Vive les fautes d'orthographe !
0
ouais je sais mais je tape vite j'ai pas le temps de me relire
0
Utilisateur anonyme
14 juin 2010 à 15:05
Sauf erreur de ma part, il faut faire un XHR.send(null) après avoir envoyé tes paramètres.
-1
non car il est avec la methode POST et
xhr.send(null);
c'est lorsque l'on et en methode GET -> car on envoit aucun parametre
0
Templier Nocturne Messages postés 7716 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
14 juin 2010 à 15:08
sinon, tu peux faire :

var post = <?php
echo $_POST['post'];
?>
-2
Templier Nocturne Messages postés 7716 Date d'inscription jeudi 22 janvier 2009 Statut Membre Dernière intervention 21 mai 2016 1 101
21 juin 2010 à 15:33
pourquoi n m'a mis -1 ? ...

ce code fonctionne et peut être utilisé puisqu'il utilise du PHP...
0