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

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

      mais pas de nom
      0
  4. Trezegoals
     
    Merci à naruto ca a marché nikel !
    Merci beaucoup aux autres qui ont répondu également, mon problème est résolu.
    1
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

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

    var post = <?php
    echo $_POST['post'];
    ?>
    -2
    1. 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