Prob récupiration des var ajax en php

Bonjour,
probléme de récupiration des variable en php méthode $_GET

voila le code

send.js


<!--

// Get the HTTP Object

function getHTTPObject(){

if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");

else if (window.XMLHttpRequest) return new XMLHttpRequest();

else {

alert("Your browser does not support AJAX.");

return null;

}

}

// affichage

function Affiche(){

if(httpObject.readyState == 4){

document.getElementById('affiche').value = httpObject.responseText;

}

}

function verifnserie()
{
httpObject = getHTTPObject();

if (httpObject != null) {

httpObject.open("GET",'reserv1.php',true);
//----------------------------------------------------
arr = document.getElementById('arr').value;
nbr_ad = document.getElementById('nbr_ad').value; //alert(nbr_ad);
nbr_enfant = document.getElementById('nbr_enfant').value;
nbr_bb = document.getElementById('nbr_bb').value;

donnees = "arr="+arr+"&nbr_ad="+nbr_ad+"&nbr_enfant="+nbr_enfant+"&nbr_bb="+nbr_bb;
//alert(donnees);
httpObject.onreadystatechange = Affichage;
httpObject.send(donnees);

}
}

var httpObject = null;

//-->

page.php

<div id="affiche">

if(isset($_GET['nbr_ad'])) echo $nbr_ad=$_GET['nbr_ad'];

</div>

echo n'affiche rien malgré lorsque j' alert(nbr_ad); en js je trouve le variable

merci d'avance !
Configuration: Windows XP
Firefox 3.0.10

4 réponses

  1. pour voir le contenu de $_GET fait un var_dump($_GET)
    si c'est vide, et bien c'est ta fonction ajax qui doit être mal utilisée
    0
    1. voila un code plus simple

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      <html xmlns="http://www.w3.org/1999/xhtml">

      <head>

      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

      <title>Ajax - PHP example</title>

      </head>

      <body>

      <script language="javascript" type="text/javascript">

      <!--

      // Get the HTTP Object

      function getHTTPObject(){

      if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");

      else if (window.XMLHttpRequest) return new XMLHttpRequest();

      else {

      alert("Your browser does not support AJAX.");

      return null;

      }

      }

      // affichage

      function affiche(){

      if(httpObject.readyState == 4){

      document.getElementById('cont').value = httpObject.responseText;

      }

      }

      function verifnserie()
      {
      httpObject = getHTTPObject();

      if (httpObject != null) {

      httpObject.open("GET",'reserv1.php',true);
      //----------------------------------------------------

      nbr_ad = document.getElementById('nbr_ad').value; //alert(nbr_ad);

      donnees = "nbr_ad="+nbr_ad;

      httpObject.send(donnees);

      }
      }

      var httpObject = null;

      //-->

      </script>

      <form name="frm" >
      <select onChange="verifnserie()" name="nbr_ad" id="nbr_ad" >
      <option>1</option>
      <option>2</option>
      <option>3</option>
      <option>4</option>
      <option>5</option>
      </select>

      </form>

      <div id="cont">
      <?php if (isset($_GET['nbr_ad']))

      echo var_dump($_GET['nbr_ad']);

      ?>
      </div>
      </body>

      </html>
      0
      1. message de console d'erreurs

        Deprecated method document.getSelection() called. Please use window.getSelection() instead.
        0
        1. pour commencer ta fonction ajax a pas l'air d'etre très récente,
          crée donc un fichier xmlhttp.js dans lequel tu mets :

          var xmlhttp=false;
          /*@cc_on @*/
          /*@if (@_jscript_version >= 5)
          try {
          xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
          } catch (e) {
          try {
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (E) {
          xmlhttp = false;
          }
          }
          @end @*/
          if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
          try {
          xmlhttp = new XMLHttpRequest();
          } catch (e) {
          xmlhttp=false;
          }
          }
          if (!xmlhttp && window.createRequest) {
          try {
          xmlhttp = window.createRequest();
          } catch (e) {
          xmlhttp=false;
          }
          }

          ensuite tu ajoute une balise script dans ton header pour insérer ce fichier xmlhttp.js
          pour ta fonction essaye plutot

          function verif() {

          xmlhttp.onreadystatechange = function()
          {
          if(xmlhttp.readyState == 4)
          {
          if(xmlhttp.status == 200)
          document.getElementById('cont').value = xmlhttp.responseText;
          else
          alert('Erreur '+xmlhttp.status);
          }
          };

          sel = document.getElementById("nbr_ad");
          var param_nbr_ad = sel.options[sel.selectedIndex].text;

          xmlhttp.open( "GET", "reserv1.php?nbr_ad="+encodeURIComponent(param_nbr_ad), true);
          xmlhttp.send(null);

          }

          pour la ligne

          var param_nbr_ad = sel.options[sel.selectedIndex].text;

          ça dépend si tu veux utiliser la partie affichée ou la valeur de l'option
          <option value="valeur">partie affichée</option>
          0