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

Résolu
cs_Diablotine666 Messages postés 5 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 10 juin 2008 - 9 juin 2008 à 14:34
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 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.

Merci pour votre aide.

14 réponses

cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
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]
3
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
9 juin 2008 à 14:38
Bonjour,
   
    je te fais confiance sur ce que tu dis, sinon faudra regarder de plus près...
   
    une histoire de cache ?
        http_request.open('GET', url+'?'+new Date(), true);

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_Diablotine666 Messages postés 5 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 10 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.
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
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.

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0

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

Posez votre question
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
9 juin 2008 à 15:27
non, j'ai dis des conneries sur la syntaxe de l'url !
    url+"?"+new Date()+"&paramè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 &");

<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
9 juin 2008 à 15:28
il faut lire open   url+"?"+new Date();<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_ov3rdoze Messages postés 414 Date d'inscription lundi 19 juillet 2004 Statut Membre Dernière intervention 23 septembre 2014
9 juin 2008 à 15:39
Salut

Je crois (sans conviction) que IE n'aime pas http_request.send(null);
Peut-être http_request.send("");
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
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]
0
cs_Diablotine666 Messages postés 5 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 10 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!
0
cs_Diablotine666 Messages postés 5 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 10 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.
  
          http_request.open("POST","ReqTehme.php"+new Date(),true);
          http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
          http_request.send("theme="+info);
          http_request.onreadystatechange = function()
          {    
             if(http_request.readyState == 4)
            {
                traitementReponse(http_request,id_ecrire);
                
            }
        }        
        
0
taillecrayon Messages postés 109 Date d'inscription vendredi 30 janvier 2004 Statut Membre Dernière intervention 23 novembre 2010
9 juin 2008 à 22:11
Salut, je pense que pour la syntaxe c'est : "ReqTehme.php?x="+new Date()
taillecrayon
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
10 juin 2008 à 06:35
sans x= à mon avis taile crayon
      http_request.open("POST","ReqTehme.php?"+new Date(),true);
<hr />                Cordialement            Bul         [mon Site]     [M'écrire]
0
cs_Diablotine666 Messages postés 5 Date d'inscription samedi 13 janvier 2007 Statut Membre Dernière intervention 10 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.
0
cs_bultez Messages postés 13616 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 15 octobre 2013 31
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]
0