IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] Erreur Ajax IE


Sujet :

AJAX

  1. #1
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut [AJAX] Erreur Ajax IE
    Bonjour,

    Je rencontre un problème avec Ajax sous IE8. J'ai une fiche de frais pour lequel l'utilisateur peut supprimer un frais en cliquant simplement dessus. Derrière j'exécute un fichier php qui va mettre à jour la base de données pour mettre un champ valide à 0. Mon code fonctionne parfaitement sous Firefox mais pas sous IE. C'est comme si requete sql ne s'execute pas puisque le champ de ma base ne change pas. Il y a t-il des particularités que je dois connaître pour faire fonctionner du code ajax sous IE?

    Merci pour votre aide.

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Bonjour,
    Citation Envoyé par Sebastien14 Voir le message
    Il y a t-il des particularités que je dois connaître pour faire fonctionner du code ajax sous IE?
    tout dépend du code en question (HTML + JS) ...
    On peut voir ?

    A+

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Voici mon code ajax :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    if(window.XMLHttpRequest) // FIREFOX
    xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // IE
    xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
    return(false);
     
     
    xhr_object.onreadystatechange = function()
    {
    	if(xhr_object.readyState == 4)
    	{
    		if(xhr_object.status == 200)
    		{
    			var elem;
    			var nb_tr;
    			var nb_repas_midi;
    			var total_indemnitee_repas_soir;
    			var total_indemnitee;
    			var total_indemnitee_nuitee;
     
    			reponse=xhr_object.responseText;
     
    			if (type_indemnitee=='repas_soir')
    			{
    				elem=reponse.split('-');
    				total_indemnitee_repas_soir=elem[0];
    				total_indemnitee=elem[1];
    				document.getElementById('total_repas_soir').innerHTML=total_indemnitee_repas_soir;
    				document.getElementById('total_indemnitee').innerHTML=total_indemnitee;
    			}
     
    		}
    	}
    }
    xhr_object.open("GET", "indemnitee.php?infos="+infos, true);
    xhr_object.send(null);
    Dans mon fichier php je fais un get des infos passer et je fais une requête sql. Ce qui fonctionne très bien sous firefox donc le problème ne vient pas de là.

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Sebastien14 Voir le message
    Ce qui fonctionne très bien sous firefox donc le problème ne vient pas de là.
    D'une part ce n'est pas parce que "ça fonctionne très bien sous Firefox" que ça ne pose pas de problème avec IE,
    d'autre part, si je te demandais aussi le code HTML, ce n'est pas pour rien

    A+

  5. #5
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Et bien voici le code html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div id="irs_{ id }" onclick="barrer('irs_{ id }',{ id },'repas_soir','{ type_evenement }');" style="text-decoration:none">{ indemnitee_repas_soir }</div>
    Et voici la partie php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $infos=$_GET['infos'];
    list($id_deplacement,$indemnitee,$type_evenement,$id_mois,$id_agent,$valide)=split('-',$infos);
     
    if ($indemnitee=='repas_soir')
    {
    	//mise à jour des indemnités du soir pour le déplacement
    	mysql_query('update fd_montant_total_indemnite set valide='.$valide.' where id_deplacement='.$id_deplacement.' and id_agent='.$id_agent.' and id_mois='.$id_mois.' and id_indemnite=1 and intitule="soir" and type_evenement="'.$type_evenement.'"');
     
    }
    Voila, merci pour ton aide.

  6. #6
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    La partie HTML, c'est uniquement du code généré ?

    Parce que si c'est le cas, "irs_{ id }" ne passe pas comme id sous IE ...

    A+

  7. #7
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Je réalise un développement sous un CMS, le { id } est interprété par ce CMS

  8. #8
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Alors il faudrait voir ce que son interprétation génère comme valeur pour ces id ...

    Par exemple, pour IE uniquement, un problème qui pourrait se poser est qu'un des id générés corresponde au name d'un élément de la page ...

    Et que ce soit FF ou IE, ton paramètre { id } de la fonction barrer() n'est pas correct : il faut l'entourer de quottes, sinon il sera interprété comme une variable (qui risque fortement de ne pas exister) ...

    A+

  9. #9
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Mon problème ne vient pas de mon code html, le code est contenu dans un template du CMS qui interprète bien cette id, si je fais un alert dans ma fonction javascript il m'affiche bien l'id. A chaque fois l'id est juste un nombre. L'id du div sera donc de la forme irs_53.

    Tu crois que mon problème viens de la? Dans ce cas il n'exécuterai pas du tout ma fonction javascript non?

  10. #10
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Il manquerait pas ça (à mettre avant le send)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xhr_object.setRequestHeader('Content-type','application/x-www-form-urlencoded');

    Perso je ferais plutôt ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    var xhr_object;
    try
    {
      xhr_object = new XMLHttpRequest(); //  Firefox, Safari, ...
    }
    catch(e1)
    {
      try
      {
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer
      }
      catch(e2)
      {
        alert('Votre navigateur ne supporte pas XMLHTTPREQUEST');
      }
    }
     
    xhr_object.onreadystatechange = function()
    {
    	if(xhr_object.readyState == 4)
    	{
    		if(xhr_object.status == 200)
    		{
    			var elem;
    			var nb_tr;
    			var nb_repas_midi;
    			var total_indemnitee_repas_soir;
    			var total_indemnitee;
    			var total_indemnitee_nuitee;
     
    			reponse=xhr_object.responseText;
     
    			if (type_indemnitee=='repas_soir')
    			{
    				elem=reponse.split('-');
    				document.getElementById('total_repas_soir').innerHTML=elem[0];
    				document.getElementById('total_indemnitee').innerHTML=elem[1];
    			}
     
    		}
    	}
    }
    xhr_object.open("GET", "indemnitee.php", true);
    xhr_object.setRequestHeader('Content-type','application/x-www-form-urlencoded');
    xhr_object.send('infos='+escape(infos));

  11. #11
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Merci pour ton aide, j'ai essayé mais sa ne change pas mon code fonctionne sous Firefox mais toujours pas sous IE!

    Je perds un temps fou pour rendre compatible le code avec IE, je propose de le supprimer de tous les postes. lol

  12. #12
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    var xhr_object;
    try
    {
      xhr_object = new XMLHttpRequest(); //  Firefox, Safari, ...
    }
    catch(e1)
    {
      try
      {
        xhr_object = new ActiveXObject("Microsoft.XMLHTTP");   // Internet Explorer
      }
      catch(e2)
      {
        alert('Votre navigateur ne supporte pas XMLHTTPREQUEST');
      }
    }
     
    xhr_object.onreadystatechange = function()
    {
    	if(xhr_object.readyState == 4)
    	{
    		if(xhr_object.status == 200)
    		{
    			alert(xhr_object.responseText);
    			reponse=xhr_object.responseText;
     			if (type_indemnitee=='repas_soir')
    			{
    				elem=reponse.split('-');
    				document.getElementById('total_repas_soir').innerHTML=elem[0];
    				document.getElementById('total_indemnitee').innerHTML=elem[1];
    			}
    		}
    	}
    }
    xhr_object.open("GET", "indemnitee.php");
    xhr_object.send('infos='+escape(infos));
    Est ce que l'affichage du alert est correct ?
    d'ou sort type_indemnite ?

  13. #13
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Une question j'ai remplacé la fin par ce que tu proposer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xhr_object.open("GET", "indemnitee.php");
    xhr_object.send('infos='+escape(infos));
    Comment je fais ensuite dans le fichier php pour récupérer la variable infos?

  14. #14
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Ca ne doit rien changer à ce niveau.
    Ce que tu passes au send, passe en paramètre GET vu que tu l'as spécifié dans le open.

    Autrement remet comme tu avais c'est juste question d'habitude que j'ai mis ça. Le escape peut être utile par contre, il permet de "coder" les caractères spéciaux pour ne pas provoquer d'erreur dans l'url.

  15. #15
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Et bien non meme sous firefox cela ne marche plus maintenant

    J'ai mis sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xhr_object.open("GET", "indemnitee.php");
    xhr_object.send('infos='+infos);

  16. #16
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    Citation Envoyé par Sebastien14 Voir le message
    Et bien non meme sous firefox cela ne marche plus maintenant

    J'ai mis sa :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xhr_object.open("GET", "indemnitee.php");
    xhr_object.send('infos='+infos);
    C'est vrai que je fais ça mais en POST...

    retest comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    xhr_object.open("GET", "indemnitee.php?infos="+infos, true);
    xhr_object.send(null);

  17. #17
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    J'ai remis comme avant, en faite maintenant par moment sa marche et à d'autre sa ne marche pas, j'adore.

    Merci pour ton aide.

  18. #18
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Par défaut
    le alert te retourne quelquechose de correct ?

  19. #19
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Non je n'ai pas de alert.

    Je regardera sa demain, parce que la il y a un truc qu'il doit m'échapper depuis le temps que je suis dessus.

    Merci pour ton aide, si tu as besoin d'aide en php ou autre n'hesite pas à m'envoyer un mp on sait jamais.

  20. #20
    Expert éminent

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Par défaut
    Citation Envoyé par Sebastien14 Voir le message
    Non je n'ai pas de alert.
    Celle qu'a ajouté Madevilts

    A tester en priorité

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [AJAX] Erreur AJAX incompréhensible
    Par obito dans le forum AJAX
    Réponses: 6
    Dernier message: 15/03/2009, 21h16
  2. [AJAX] erreur AJAX, responseText
    Par locs dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/07/2007, 19h07
  3. [AJAX] Erreur AJAX !
    Par J0r_x dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/01/2007, 14h20
  4. Réponses: 2
    Dernier message: 07/01/2007, 12h22
  5. [AJAX] Erreur système : -1072896658 Code 0
    Par ericw78 dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 01/02/2006, 19h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo