voilà je suis partie à faire un truc de base en AJAX
-1 liste déroulante avec des chiffres
-> afficher autant de champs que de chiffres selectionné
donc j'ai un code HTML ici
<select name=Colza[li_nb_passage] size="1" id="li_nb_passage" onChange="AJAX('nb','li_nb_passage','tst.php','passagesSol')">
<option selected="" value="">choix du nombre de passage</option>
<option value="1">1</option>
<option value="2">2</option>
</select>
et mon code Js là :
function getXMLHttpRequest()
{
var xhr = null;
if (window.XMLHttpRequest || window.ActiveXObject)
{
if (window.ActiveXObject)
{
try
{
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e)
{
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
else
{
xhr = new XMLHttpRequest();
}
}
else
{
alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest...");
return null;
}
return xhr;
}
function AJAX(nom,controle,pageCible,div)
{
alert("param => "+nom+" "+controle+" "+pageCible+" "+div);
var xhr = getXMLHttpRequest();
xhr.open("POST", pageCible , true);
alert(xhr.readyState);
xhr.onreadystatechange = function()
{
alert(xhr.readyState);
if(xhr.readyState == 4)
{
var reponse = xhr.responseText;
alert("reponse => "+reponse);
document.getElementById(div).innerHTML = reponse;
}
} ;
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
var req = nom + " = " + document.getElementById(controle).value;
alert("req => "+req);
xhr.send(req);
}
et mon page PHP
<?php echo "HELLO WORLD" ?>
mon problème est que ça marche => mon firebug reçoit bien le résultat de la requête AJAX ... mais le "alert("reponse => "+reponse);" n'est jamais exécuté ...
Ah alors si tu as le retour sur firebug, je sais pas si c'est pas lui qui fout la merde. Il m'est arrivé la même chose récemment, firebug voit la réponse mais la page non. J'ai désactivé firebug, pouf ça remarchait :/
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.