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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
document.getElementById('nb_resultat_recherche').innerHTML = xmlHttp.responseText;
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part
alert(xmlHttp.responseText);
la fenêtre d'alerte JS apparait tout le temps mais avec tout le temps le même résultat (le premier).

Voici donc le code source :

la fonction Ajax :
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;
      }
l'appel de cette fonction se fait sur le onclick sur chaque checkbox du formulaire

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)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
<?php
  $nb = rand(0,200);
  echo $nb;
?>
tout ce qu'il y a de plus simple donc...

Voila, vous pouvez voir la page en construction ici...