Problème de récupération de données avec AJAX

Ponpon -  
 edennnnn -
Bonjour,

Je souhaite récupérer des données contenues dans une base de données en utilisant de l'ajax afin de ne pas à avoir à rechercher ma page. Mon code fonctionne très bien sous Firefox, mais pas sous IE (j'utilise IE7).

Voici mon code :

function makeRequestGET(url,id, id_ecrire){

id_niveau= id.id;
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
http_request = new XMLHttpRequest();

} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!http_request) {
alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
http_request.open('GET', url, true);
http_request.send(null);
http_request.onreadystatechange = function()
{
if(http_request.readyState == 4)
{
traitementReponse(http_request,id_ecrire);
}
}

}

function traitementReponse(http_request,id_ecrire) {
var affich="";
var affich_list=http_request.responseText;
alert(http_request.responseText);
}

Lors du premier appel de la fonction tout se passe bien, mais si j'effectue un changement dans la base de données, les informations récupérées dans le http_request.responseText sont les informations avant la modification dans la base. Je pense que mon code fait planter IE mais je vois pas pourquoi.
Merci pour votre aide.
Configuration: Windows XP
Firefox 2.0.0.14
IE7

7 réponses

  1. David
     
    Salut Ponpon
    Je pense qu'il te manque un header dans ton fichier qui genère l'ajax.
    Si je me souviens bien c'est quel que chose comme ca :

    header("cash-Control:no-store,no-cash,must-validate");

    @+
    David
    0
  2. Ponpon
     
    Mon fichier qui génère l'ajax? le fichier php tu veux dire?
    0
    1. David
       
      Oui c'est ca
      0
      1. David > David
         
        En fait, ce header est à mettre dans le fichier qui te genère le xml, pardon pour l'erreur
        0
  3. Ponpon
     
    Ba j'ai essayé mais ça ne change rien
    0
    1. David
       
      Excuse moi de te poser cette question mais souvent, ca m'arrive à moi.
      Est ce que tu as fermer la page que tu utilisais et relancé une autre ?
      0
  4. Ponpon
     
    Je l'ai mis dans mon fichier php qui exécute la requête à la base de données mais je suis pas sûr que c'est ce que tu veux dire.
    0
    1. David
       
      Oui c'est dans ce fihcier qu'il faut que tu mettes ce header.
      Mais la page reste en cash si tu ne ferme pas ton exploreur.
      J'aivais eu le meme souci et en mettant ce header, le fichier xml était regénéré à chaque fois que tu voulais le lire
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Ponpon
     
    Y a pas de mal pour la question ^^ Oui je l'ai fait, plusieurs fois même mais rien n'y change. Mon code javascript te parait-il correcte?
    0
    1. David
       
      Je n'ai pas de source à moi sous la main pour te dire si ton code javascript et bon, bienqu'il me semble bon.
      Mais si tu dis que ca marche mais que ca ne prend pas en compte les mise à jour, c'est donc que le problème vien de ton xml.
      0
  7. Ponpon
     
    En fait je n'utilise pas de xml. Je récupère une chaine de caractère.

    Code du fichier php :

    $theme=$_GET['theme'];

    $requete2="SELECT * FROM adminmenu WHERE theme ='$theme'";
    $resultat2 = mysql_query($requete2);
    $tab2=mysql_fetch_array($resultat2);

    echo $tab2['1'];
    echo "/";
    echo $tab2['2'];
    echo "/";
    echo $tab2['3'];
    echo "/";
    echo $tab2['4'];
    echo "/";
    echo $tab2['5'];
    echo "/";
    echo $tab2['6'];
    echo "/";
    echo $tab2['7'];
    echo "/";
    echo $tab2['8'];
    echo "/";
    echo $tab2['1'];

    Je découpe ensuite le résultat à l'aide de la fonction split en javascript.
    0