Récupérer variable POST en AJAX

Trezegoals -  
 th@o -
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 904 Statut Membre 188
 
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
 
"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 904 Statut Membre 188
 
ah ouai j'suis beteeeeeee , on va dire que j'ai rien dit :p
0
th@o
 
il faut envoyer tes parametres avant de recupere les données....
1
th@o
 
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
th@o
 
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
th@o
 
dsl je me tromper c'est :
XHR.onreadystatechange = function() {

mais pas de nom
0
Trezegoals
 
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é
 
c'est quoi se truc en php c'est pourquoi fait cette fonction
0
th@o
 
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
th@o
 
mais elle appele des fichier .php
0
informaticiensystem32
 
Vive les fautes d'orthographe !
0
th@o
 
ouais je sais mais je tape vite j'ai pas le temps de me relire
0
Utilisateur anonyme
 
Sauf erreur de ma part, il faut faire un XHR.send(null) après avoir envoyé tes paramètres.
-1
th@o
 
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 9989 Statut Membre 1 107
 
sinon, tu peux faire :

var post = <?php
echo $_POST['post'];
?>
-2
Templier Nocturne Messages postés 9989 Statut Membre 1 107
 
pourquoi n m'a mis -1 ? ...

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