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

JavaScript Discussion :

[AJAX] Compatibilité IE / AJAX


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Par défaut [AJAX] Compatibilité IE / AJAX
    Bonjour,

    Ce qui suit fonctionne parfaitement sous FF mais à moitié sur IE, je m'explique.

    J'ai un tableau et en dessous un formulaire d'ajout. J'ai la possibilité grâce à ce formulaire d'ajouter des informations dans mon tableau (ça crée une ligne à chaque fois et ça "rafraichit" en ajax le tableau), et pour chaque ajout j'ai la possibilité ensuite de supprimer ligne par ligne. Rien de bien compliqué jusque là.

    Sur FF, aucun problème, l'ajout et la suppression en AJAX marche, par contre sur IE, petit problème.

    Lorsque je valide l'ajout, aucune réaction d'IE, mais pourtant l'insertion en bdd a bien été faite puisque si je fais F5, elle apparait. Par contre, pour la suppression, aucune problème puisqu'elle se fait directement, et là, j'avoue ne pas comprendre pourquoi ça ne "refresh" pas après l'ajout mais pour la suppression oui ??

    Code de l'ajout en 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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    function ajouter(formu)
    {
    	XmlHttp = getXmlHttpObject();
     
    	var edit = formu.edit.value;
    	var type_moyen = formu.type_moyen.value;
    	if (formu.date.value==""){
    	var date = "Non renséigné";
    	}
    	else
    	{
    	var date = formu.date.value;
    	}
    	var etat = formu.etat_avancement.value;
    	var intitule = formu.intitule.value;
    	var jour_homme = formu.jour_homme.value;
    	var cout = formu.cout.value;
    	//etc...
    	XmlHttp.onreadystatechange=stateChanged;
    	XmlHttp.open("GET","actualiser.php?edit="+edit+"&type_moyen="+type_moyen+"&date="+date+"&etat="+etat+"&intitule="+intitule+"&jour_homme="+jour_homme+"&cout="+cout);	
    	XmlHttp.send(null);
    }
     
    function stateChanged()
    {
    	if(XmlHttp.readyState==4)
    	{
    		var reg = new RegExp("[;]+", "g");
     
    		var resultat = XmlHttp.responseText.split(reg);
     
    		var edit = resultat[0];
    		var type_moyen = resultat[1];
    		var date = resultat[2];
    		var etat = resultat[3];
    		var intitule = resultat[4];
    		var jour_homme = resultat[5];
    		var cout = resultat[6];
     
    		var tr = document.createElement('tr');	
    		tr.setAttribute('class', 'donneetableauut');
    		var td0 = document.createElement('td');
    		var td1 = document.createElement('td');
    		td1.setAttribute('align', 'center');
    		var td2 = document.createElement('td');
    		td2.setAttribute('align', 'center');
    		var td3 = document.createElement('td');
    		td3.setAttribute('align', 'center');
    		var td4 = document.createElement('td');
    		td4.setAttribute('align', 'center');
    		var td5 = document.createElement('td');
    		td5.setAttribute('align', 'center');
    		var td6 = document.createElement('td');
    		td6.setAttribute('align', 'center');
     
    		td1.appendChild(document.createTextNode(type_moyen));
    		td2.appendChild(document.createTextNode(date));
    		td3.appendChild(document.createTextNode(etat));
    		td4.appendChild(document.createTextNode(intitule));
    		td5.appendChild(document.createTextNode(jour_homme));
    		td6.appendChild(document.createTextNode(cout));
     
    		tr.appendChild(td0);
    		tr.appendChild(td1);
    		tr.appendChild(td2);
    		tr.appendChild(td3);
    		tr.appendChild(td4);
    		tr.appendChild(td5);
    		tr.appendChild(td6);
     
    		document.getElementById("divAjout").appendChild(tr);
    	}
    }
    Code de la suppression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     function supprMoyen(r,id)
    {
    	XmlHttp = getXmlHttpObject();
    	var i=r.parentNode.parentNode.rowIndex;
    	document.getElementById('divAjout').deleteRow(i);
    	XmlHttp.open("GET","suppr_moyen.php?id="+id);	
    	XmlHttp.send(null);
    }

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2002
    Messages : 14
    Par défaut
    Bonjour,

    Dans les options de IE, as tu choisi de toujours vérifier la version de la page (pas de mise en cache). J'ai déjà eu un problème similaire à cause de ça.
    Images attachées Images attachées  

  3. #3
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Par défaut
    Ça change rien, et en plus de ça ça me fait buguer d'autres pages :s

  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
    Bonjour,
    certainement un problème de cache quand même.
    Voir http://www.developpez.net/forums/d33...nsertion-base/

    A+

  5. #5
    Membre éclairé
    Inscrit en
    Mai 2006
    Messages
    691
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 691
    Par défaut
    Dans mon cas je dois le mettre en haut d'actualiser.php c'est ça ?

    Parce que si c'est le cas, j'avais déjà cherché et étais tombé plusieurs fois sur cette solution, sans succès. Ça marche toujours pas.

  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
    Citation Envoyé par Herman Voir le message
    Dans mon cas je dois le mettre en haut d'actualiser.php c'est ça ?
    Si c'est elle qui génère la réponse : oui.
    Ces lignes doivent être les toutes premières de la réponse.

    Une autre solution (ci-dessus la ceinture, ci-dessous les bretelles) :
    http://javascript.developpez.com/faq...#navig.nocache

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] Compatibilité navigateurs
    Par charlottebardet dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 29/04/2008, 09h48
  2. [AJAX] Compatibilité firefox / IE6
    Par bioinfo dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 17/03/2008, 13h44
  3. [AJAX] compatibilité avec les tables
    Par zooffy dans le forum ASP.NET
    Réponses: 7
    Dernier message: 19/12/2007, 11h15
  4. [AJAX] Compatibilité IE / FF pour ajax ?
    Par crepeOsucre dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 23/06/2007, 17h00
  5. [AJAX] compatibilité restreinte
    Par cyrill.gremaud dans le forum Général JavaScript
    Réponses: 12
    Dernier message: 17/11/2006, 10h21

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