cs_Diablotine666
Messages postés5Date d'inscriptionsamedi 13 janvier 2007StatutMembreDernière intervention10 juin 2008
-
9 juin 2008 à 14:34
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 2013
-
10 juin 2008 à 10:04
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.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 9 juin 2008 à 16:49
post + le new Date() dans l'open
si ça ne fonctionne pas, faudra étudier ton code de plus près,
tu nous remettras la denière version.
<hr /> Cordialement Bul [mon Site] [M'écrire]
cs_Diablotine666
Messages postés5Date d'inscriptionsamedi 13 janvier 2007StatutMembreDernière intervention10 juin 2008 9 juin 2008 à 15:05
Merci pour ta réponse, j'ai essayé ce que tu as écrit mais je reçois plus rien du tout du coup! Je pensais aussi à une histoire de cache mais bon... Je ne connais pas trop le javascript et je ne sais pas si m'a syntaxe est correcte. Je récupère ensuite mes informations sous une chaine de caractères, je ne passe pas par du xml.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 9 juin 2008 à 15:19
je viens de voir... comme tu es en GET, tu passes déjà des paramètres
dans url, je suppose....
si oui : fais : url+'&datebidon='+new Date();
ou alors tu as ( peut-être réproduite de ce que j'ai mis ! )
une erreur de syntaxe... le debugger est activé ?
•————————•——————————————————————————————————————————————————————————•
|Internet|activer le deboggage : Outils/options Internet/Avancés |
|Explorer| dans la liste, sous "Navigation" : décocher |
| | o Afficher une notification de chaque erreur de script |
| | o Désactiver le débogage de Scripts (Internet Explorer) |
| | et mieux, : télécharger le Debogger IE |
| | voir aussi : DebugBar et Companion JS |
•————————•——————————————————————————————————————————————————————————•
toujours pas vérifié ton code, mais si ce ce que tu expliques est vrai ! :
ça baigne 1 fois plus après et uniquement avec IE,
ça ne peut venir que du cache.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 9 juin 2008 à 15:27
non, j'ai dis des conneries sur la syntaxe de l'url !
url+"?"+new Date()+"¶mètres..." peut-être ? pas sûr de la syntaxe !
sinon fait la requête en post ( et $_POST du coup coté php ) avec
open url+"?"+new date();
+ send("paramètres séparés par &");
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 9 juin 2008 à 15:58
ov3rdoze++ enfin, pour FF et ses potes je crois ?
je ne souviens même pas si ce n'est pas send() qui ne plait pas ?
et dans le doute, j'use aussi toujours, avec get, de send('') .
<hr /> Cordialement Bul [mon Site] [M'écrire]
cs_Diablotine666
Messages postés5Date d'inscriptionsamedi 13 janvier 2007StatutMembreDernière intervention10 juin 2008 9 juin 2008 à 16:38
J'ai téléchargé les débogeurs, effectivement il n'a pas l'air d'avoir d'erreur dans mon script (merci, j'en cherchais justement!). J'ai testé htt_requeqt.send(""); mais ça n'a rien changé. Je vais essayé avec la méthode POST. Merci pour vous réponses!
cs_Diablotine666
Messages postés5Date d'inscriptionsamedi 13 janvier 2007StatutMembreDernière intervention10 juin 2008 9 juin 2008 à 17:47
Voici mon nouveau code avec le POST. Par contre ça ne me retourne pas du tout ce que je veus. Il doit y avoir une erreur, mais je connais pas du tout la méthode POST.
cs_Diablotine666
Messages postés5Date d'inscriptionsamedi 13 janvier 2007StatutMembreDernière intervention10 juin 2008 10 juin 2008 à 09:50
J'ai finalemenr résolut mon problème avec la méthode POSt qui marche très bien même sans le new Date() mais je l'ai quand même mis! Merci à tous et particulièrement à bultez.
cs_bultez
Messages postés13615Date d'inscriptionjeudi 13 février 2003StatutMembreDernière intervention15 octobre 201330 10 juin 2008 à 10:04
je pense que post ou get, le souci "était ailleurs", qu'on
n'a pas tout expliqué... mais si ça baigne : nickel ! merci du retour.
?new Date() ou autres "valeur aléatoire" : pour problème de cache.
<hr /> Cordialement Bul [mon Site] [M'écrire]