Je tente de faire des requète asynchrone et j’ai un problem, lorsque je clique sur un lien, j’appel une fonction javascript qui marche très bien.Dans cette fonction, j’appelle un fichier sur le server ‘test.php’ de cette manière:
xhr.open(“GET”, “js/test.php”, true);
ca marche aussi très bien, sauf que j’aimerai bien faire ce genre de chose :
function test(essaie_text)
{
. . . // tt le code qui permet de faire un appel aynscrhone
xhr.open(“GET”, “js/test.php?t=”+essai_test, true);
xhr.send(null);
}
Malheureusement, dans mon fichier test.php, la variable t est considéré comme inexistante, je voulais donc savoir comment faire pour passer des argument récupéré lors du clique, bien sur dans mon fichier php ( qui génère un fichier xml) j’ai echo ’ “$_GET[‘t’].” ’ , mais ça me dit que la variable t n’existe pas, comment faire ?
c’est probablement xhr.send que tu cherches, mais n’utilises pas directement xhr! utilises plutôt des librairies comme prototyp ou jquery! (en plus des fonctions ajax y’a plein de ptits trucs simpa )
J’arrive vraiment pas à trouver l’erreur, c’est peut être une erreur de compréhension de la fonction open avec POST comme arguement, est ce qu’il y a un retour ensuite ???
Voila la partie qui nous interesse de la fonction, ainsi que ma fonction appelé ( je précise que je n’ai même pas d’ “alert” vide:
xhr.onreadystatechange = function() {
if(xhr.readyState == 4){ // si c'est terminé
maj_reg(xhr);
}
};
xhr.open("POST", "js/test.php", true);
xhr.send(test); // La variable test est un paramètre de la fonction qui contient ce code et qui a pour valeur la valeur d'un select (j'ai testé et ca prend les bonne valeur)
}
function maj_region(xhr) // censé affiché ce qui revient grâce au fichier php qui génère du xml
{
var docXML= xhr.responseXML;
var items = docXML.getElementsByTagName("donnee")
for (i=0;i<items.length;i++)
{
alert (items.item(i).firstChild.data);
}
}
Ensuite, voila mon fichier php: (qui génère du xml)
En effet , plutot pertinent comme remarque ( quel nul je fais sur ce coup), par contre, un problème est apparu qq part, j’ai tenté de faire ca pour voir si j’arrivais bien à cet état , et j’ai même pas l’alert . . .
Euh oui mon fichier est bien généré ( à part le text manquant qui devrait être le $_POST[‘test’] ) mais je vois pas vraiment en quoi ça facilite le travail ce que tu me propose là . . .
J’ai trouvé une fonction sur le net, que j’ai a peine modifier et qui “marche” , quand je dis marche, c’est que j’utilise le responsText qui m’affiche donc tout mon code XML AVEC la valeur de $_POST[‘test’] qui est bonne, donc c’est un bon point, PAR CONTRE , je n’arrive pas à transformé le code pour que ca m’affiche dans les alert, uniquement les info contenu dans les tag xml, voici la fonction :
function ajax_test(test) {
var req = null; //défini l'objet req de façon globale, pour qu'il soit reconnu dans tout le script
req = new XMLHttpRequest();
req.onreadystatechange = testRep;
req.open("POST", "js/test.php", true);
req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
data = "test="+test;
req.send(data);
function testRep() {
if (req.readyState == 4) {
if (req.status == 200) {
alert(req.responseText);
}
else {
alert("Problem: " + req.statusText);
}
}
}
}
j’ai réussi à contourné le problème, au lieu de tenter de faire du XML avec le php, je fais tout du echo normal, puis je l’affiche grâce au DOM dans un Div, et ca marche. Par contre, maintenant j’ai un problème d’accent, les é è à etc . . . ne passe pas dans le retour, je suppose que c’est à cause de ça non ?