Bonsoir tout le monde, je poste alors que c'est la fin de ma journée, je répondrai donc surement demain.
Je suis en train de développer un moteur de recherche de vêtements avec des cases à cocher. J'y joins de l'Ajax pour qu'à chaque action du client sur les checkboxs de choix des critères, une requête soit envoyé au serveur pour mettre à jour un champ avec le nombre d'articles correspondant à la requête.
Cela marche très bien sous FF, mais sous IE (6 et 7), l'appel marche une fois puis il me retourne ensuite toujours pareil.
En fait, je sais qu'il est appelé à chaque fois puisqu'en remplaçant :
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part document.getElementById('nb_resultat_recherche').innerHTML = xmlHttp.responseText;
la fenêtre d'alerte JS apparait tout le temps mais avec tout le temps le même résultat (le premier).
Code : Sélectionner tout - Visualiser dans une fenêtre à part alert(xmlHttp.responseText);
Voici donc le code source :
la fonction Ajax :
l'appel de cette fonction se fait sur le onclick sur chaque checkbox du formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 // creation du pont entre JS et PHP (pour l'AJAX) function GetXmlHttpObject() { var objXMLHttp = null; if (window.XMLHttpRequest) objXMLHttp=new XMLHttpRequest(); else if (window.ActiveXObject) objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP"); return objXMLHttp; } // ajax pour la mise a jour de la liste des categories quand on choisit une marque dans le menu de recherche rapide function rechArticle(form) { xmlHttp = GetXmlHttpObject(); if (xmlHttp == null) { alert("Votre navigateur ne supporte pas les requêtes HTTP."); return false; } var url="recherche_ajax.php"; // le script à appeller // fonction à exécuter dès réception de la réponse xmlHttp.onreadystatechange = function(){ if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") document.getElementById('nb_resultat_recherche').innerHTML = xmlHttp.responseText; //on affiche ce que le serveur renvoie //alert(xmlHttp.responseText); } xmlHttp.open("GET", url, true);//envoi en GET asynchrone xmlHttp.send(null); return true; }
et voici le bout de PHP qui me retourne le nombre d'articles (c'est aléatoire pour le moment, en attendant que je construise la vraie requête)
tout ce qu'il y a de plus simple donc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 <?php $nb = rand(0,200); echo $nb; ?>
Voila, vous pouvez voir la page en construction ici...
Partager