IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

[AJAX] R�cup�rer $_POST actualis� par AJAX


Sujet :

JavaScript

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    F�vrier 2008
    Messages
    19
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2008
    Messages : 19
    Par d�faut [AJAX] R�cup�rer $_POST actualis� par AJAX
    Bonjour � tous

    Alors voila mon probleme, j'ai dans un formulaire, utilis� AJAX pour actualiser une seconde liste deroulante � partir d'une premiere, puis actualiser une zone de texte � partir de la deuxieme... Tout �a marche bien (que sur firefox d'ailleurs je sais pas si c'est normal).

    et maintenant, dans ma page de v�rification du formulaire, je pensais pouvoir r�cuperer normalement les valeurs actualis�es (notament la selection sur la deuxieme liste) en $_POST, mais PHP ne la trouve pas. C'est comme si le submit n'envoyait que les donn�es pr�sentes au premier affichage de la page, et donc que les parties actualis�es par AJAX n'en font pas partie.

    il ne rentre donc pas dans la condition suivante
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    if(isset($_POST['codeRef']))
    {
    }
    Comment je peux faire ? si vous voulez une autre partie du code demandez le moi.

    Merci

  2. #2
    Membre �clair� Avatar de tavarlindar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    262
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 262
    Par d�faut
    Bonjour,

    Je suis en plein dans l'�tude d'ajax ...

    Pourrais-tu nous mettre faire part de ton code ?

  3. #3
    Membre averti
    Inscrit en
    F�vrier 2008
    Messages
    19
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2008
    Messages : 19
    Par d�faut
    oui bien s�r.

    Pour simplifier le code et ne pas trop surcharger la discussion, j'ai retir� certains �l�ments qui peuvent faire paraitre ce script d�faillant mais il marche .

    Alors voici le code HTML:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <table align="center" border="0">
    <tr>
          <form id="commande" name="commande" method="POST" enctype="multipart/form-data" action="vcommande.php">
    </tr>
    <tr>
          <td width="150" class="form">Fournisseur:</td>
          <td><!-- Jai simplifié, normalement la liste va chercher les fournisseurs dans la base de données -->
          <select name="idFournisseur" align="center" onChange="javascript:getRefs();"> 
    	<option value= "0" selected>- - - - - - - -</option><? 
    	<option value= "1">Four1</option>
    	<option value= "2">Four2</option>				
          </select>
          </td>
    </tr>
    <tr id="refs">
         <!--Cest ce tr qui sera actualisé par ajax pour afficher la liste des references en fonction du fournisseur	-->
         <td width="150" class="form">Ref produit:</td>
         <td>
              <select name="codeRef">
                   <option value="0">- - - - - - - -</option>
              </select>
         </td>
    </tr>
    La fonction AJAX getRefs() appel�e par le onChange de la liste:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    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
     
    function getRefs() 
    {
    creerRequete();	/* initalise la variable globale "requete" */
     
    var monForm = document.getElementById('commande');	
    var fournisseurs = monForm.idFournisseur;	/* On récupère la valeur sélectionnée dans la liste déroulante */
    var four = "";
     
    for (i = 0; i < fournisseurs.options.length; i++)
    {
         if (fournisseurs.options[i].selected) 
         {
              four += fournisseurs.options[i].value;
         }
    }
     
    var url = 'references.php?four='+four;	/* On définie l'url à appeller en passant cette valeur */
    requete.open('GET', url, true);    /* Préparation d'une requête asynchrone de type GET */
     
    requete.onreadystatechange = function() 
    {
         if(requete.readyState == 4)		/* 4 signifie que l'état est "complete" */
         {
              if(requete.status == 200)	/* code HTTP si tout est ok */
              {
                   document.getElementById('refs').innerHTML = requete.responseText;	/* Traitement de la réponse, on met à jour notre tr via son id*/
              }
         }
    };
     
    requete.send(null);		/* Effectue la requête */
    }
    La page references.php qui va traiter le resultat d'AJAX

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    $four = isset($_GET['four']) ? $_GET['four'] : false;
     
    if($four != false)
    {	?>
    <td width="150" class="form">Ref produit:</td>
    <td>	
         <select name="codeRef" id="codeRef" align="center" onChange="javascript:getLibArticle();">
         <? 
         $req = "ma requete";
         $req2 = mysql_query($req)or die('Erreur SQL !<br>'.$req.'<br>'.mysql_error());
     
         while($donnees = mysql_fetch_array($req2))	// On parcours toutes les ref 
         {
              echo '<option value='.$donnees['codeRef'].'>'.$donnees['codeRef'].'</option>';
         }
    ?>
         </select>
    </td>
    <?  }

  4. #4
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Pour r�cup�rer quelque chose dans $_POST c�t� serveur, il faut avoir utili� la m�thode "post" c�t� client.
    Or, si je lis bien ton code :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    requete.open('GET', url, true);    /* Préparation d'une requête asynchrone de type GET */

  5. #5
    Membre averti
    Inscrit en
    F�vrier 2008
    Messages
    19
    D�tails du profil
    Informations forums :
    Inscription : F�vrier 2008
    Messages : 19
    Par d�faut
    Oui tu as raison mais le GET que tu vois l� sert pour transmettre la variable � ma page references.php, qui elle m�me est alors inclue dans le formulaire apres actualisation d'AJAX.

    Dans references.php, je r�cup�re bien un GET pour avoir le resultat de la requete XMLHttpRequest:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    $four = isset($_GET['four']) ? $_GET['four'] : false;
    Par contre j'ai bien un POST pour soumettre mon formulaire:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    <form id="commande" name="commande" method="POST" enctype="multipart/form-data" action="vcommande.php">
    Cependant, j'ai quand m�me essay� de r�cuperer un $_GET apres validation du formulaire, et effectivement il n'existe pas non plus.

  6. #6
    Membre �m�rite Avatar de Herode
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Mars 2005
    Messages
    825
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - Multim�dia et Internet

    Informations forums :
    Inscription : Mars 2005
    Messages : 825
    Par d�faut
    Ha oui, autant pour moi, j'avais lu trop vite...
    La d�claration de ton formulaire semble incorrecte : balise fermante </form> absente et de toutes fa�ons, il faudrait la placer dans le <tr> o� la balise ouvrante a �t� d�clar�e. Si tu d�clares ta balise <form> correctement avant et apr�s la <table>, �a pourrait aller mieux.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [AJAX] r�cup�rer du XML par Ajax.
    Par seb_714 dans le forum AJAX
    R�ponses: 2
    Dernier message: 24/07/2012, 13h57
  2. r�cup�rer variable url par ajax
    Par jules_diedhiou dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 24/01/2012, 13h00
  3. [AJAX] R�cup�rer noeud g�n�r� par ajax
    Par pluche52 dans le forum AJAX
    R�ponses: 5
    Dernier message: 10/01/2011, 18h11
  4. [AJAX] Executer Javascript charg� par Ajax
    Par Sylvain71 dans le forum G�n�ral JavaScript
    R�ponses: 16
    Dernier message: 13/12/2007, 23h14
  5. [AJAX] r�cup�rer donn�es transmises par php
    Par Maryy dans le forum G�n�ral JavaScript
    R�ponses: 5
    Dernier message: 07/01/2007, 16h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo