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 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
    1. message de console d'erreurs

      Deprecated method document.getSelection() called. Please use window.getSelection() instead.
      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. 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