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.
A voir également:

7 réponses

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
Ponpon
 
Mon fichier qui génère l'ajax? le fichier php tu veux dire?
0
David
 
Oui c'est ca
0
David > David
 
En fait, ce header est à mettre dans le fichier qui te genère le xml, pardon pour l'erreur
0
Ponpon
 
Ba j'ai essayé mais ça ne change rien
0
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
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
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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
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
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
edennnnn
 
j'ai eu le meme probleme

regarde sur ce site https://olance.developpez.com/articles/web/javascript/modification-inline/

regarde la fonction ietrick qui est ajouté a la fin de l url de la requete XMLHttpRequest.open

ta fonction ressemblera à ça : http_request.open('GET', url+ietrick(), true);
0