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

Fermé
Ponpon - 9 juin 2008 à 10:54
 edennnnn - 28 juil. 2008 à 18:15
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.

7 réponses

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