[AJAX] Recharger deux parties d'une page dans la même fonction.
Bonjour, le problème est relativement simple, j'ai une page avec 4 "volets". Comprenez, un titre, on clique dessus, le détail apparait et ferme le volet qui était ouvert.
Voila mes deux fonctions servant à créer et manager mon xhr :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| function ObjetXHR(LD_URL) {
//creation de l'objet XMLHttpRequest
if (window.XMLHttpRequest) { // Mozilla,...
xmlhttp=new XMLHttpRequest();
if (xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType('text/xml');
}
xmlhttp.open("GET", LD_URL, true);
xmlhttp.onreadystatechange=ChargeLd;
xmlhttp.overrideMimeType('text/html; charset=ISO-8859-15');
xmlhttp.send(null);
} else if (window.ActiveXObject) { //IE
xmlhttp=new ActiveXObject('Microsoft.XMLHTTP');
if (xmlhttp) {
xmlhttp.open('GET', LD_URL, false);
xmlhttp.onreadystatechange=ChargeLd;
xmlhttp.send();
}
}
//document.getElementById(id_focus).focus();
}
// fonction pour manipuler l'appel asynchrone
function ChargeLd() {
if (xmlhttp.readyState==4) {
if (xmlhttp.status==200) {
document.getElementById(id_span).innerHTML=xmlhttp.responseText;
document.getElementbyId(id_col).innerHTML=x
}
}
} |
Et ma fonction qui ouvre un volet et ferme le volet ouvert précédement :
Code:
1 2 3 4 5 6 7 8
| function OpenVolet(id_open,id_close){
id_span=id_close;
var LD_URL = 'ajax/CloseVolet.php?volet='+id_close;
ObjetXHR(LD_URL);
id_span=id_open;
var LD_URL = 'ajax/OpenVolet.php?volet='+id_open;
ObjetXHR2(LD_URL);
} |
La première partie de OpenVolet fonctionne très bien, le volet précédent se ferme, mais impossible de faire fonctionner l'ouverture (que j'ai testé à part, et qui marche.)
J'ai lu sur quelques forums qu'il fallait utiliser la fonction .abort(), pour libérer la requete xhr mais je n'ai pas réussi à l'appliquer correctement.
En fait, après quelques tests, je me suis aperçu que tout se qui se trouvait à la suite de l'appel de ObjetXHR() dans ma fonction OpenVolet ne s'exécutait pas.
Pourquoi? Comment faire pour résoudre mon problème, tout plein de questions qui se trouvent sans réponse!!
Merci d'avance!