Bonjour!
J'ai commencé récemment les XMLHttpRequest. J'ai mis ci-dessous ma fonction. Je l'appelle lorsque je clique sur une checkbox et affiche le résultat (le contenu de la variable box) dans un paragraphe via la fonction verif4.
Le souci est que je dois cliquer deux fois pour afficher le résultat. La première fois, j'ai "null", c'est à dire l'initialisation de ma variable box.
Comment faire pour que le résultat s'affiche directement et pas au deuxième coup?
Je vous remercie d'avance pour tout aide.
box=null;
function boxAjax(noeud){
var xhr;
if(window.XMLHttpRequest || window.ActiveXObject) { if(window.XMLHttpRequest) {//instanciation de la requete xhr = new XMLHttpRequest();
}
else {//Pour avant ie7 try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { xhr = new ActiveXObject("Microsoft.XMLHTTP"); }
}
}
else {//Pour le vieux navigateurs ou sécurite alert("Votre navigateur ne supporte pas l'objet XMLHTTPRequest..."); return;
}
xhr.open("GET", "boxes.php?noeud=" + noeud +"", true);//Envoi de la requete au serveur par la methode get. xhr.send(null);
xhr.onreadystatechange = function() { //Fonction anonyme
if(xhr.readyState == 4 && (xhr.status == 200 || xhr.status == 0)) {//Reception de la reponse du script php box=xhr.responseText;
if(box=="erreur"){ alert('Erreur lors de la requete Ajax!'); }
}
}
return box;
}
function verif4(noeud){
if(document.getElementById('branche-'+noeud).checked){
//Ajout d'une action, requete ajax a prevoir pour afficher les touches possibles
box=boxAjax(noeud);
document.getElementById('addbranche-'+noeud).innerHTML='Ajouter les branches : '+box;
}
else{
document.getElementById('addbranche-'+noeud).innerHTML='';
}
}