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] Ajax - IE8, les solutions ne marchent pas chez moi !


Sujet :

AJAX

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut [AJAX] Ajax - IE8, les solutions ne marchent pas chez moi !
    Bonjour à tous,

    Je travaille actuellement sur un intranet dans le cadre d'un stage.
    Il doit être développé pour IE8 (c'est bien là le hic ...).

    J'ai besoin à plusieurs endroits d'utiliser de l'Ajax et et j'ai des problèmes de rafraichissement qui m'énervent car ça ne le fait pas avec FireFox !
    Alors oui je sais que le sujet à déjà été traité, qu'il y a des solutions soi disant qui marchent apparemment parce que chez moi, bah non.

    Je vous explique :

    J'ai une liste de jours feriés comme ceci :



    En fait il faut choisir l'année, cliquer sur le bouton OK et le bloc avec la liste apparait (il est caché initialement).

    Pour supprimer un jour férié, j'ai fait un lien pour chaque ligne avec un onclick qui renvoie vers la fonction Javascript ci :

    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
    function supprimer_jour_ferie(id, libelle)
    {
    	if(confirm("La suppression sera définitive ! Êtes-vous certain de vouloir supprimer "+libelle+" ?"))
    	{	
    		var url = "modele/trait_supprime_jour_ferie.php";
     
    		new Ajax.Request(url,
    		{
    			method: 'post',
    			parameters: 'id_jour_ferie='+id,
    			onSuccess: function(transport)
    			{
    				//alert(transport.responseText);
    				$("chargement").style.display = "none";
     
    				$("bloc_confirmation").style.display = "block";
    				setTimeout(function(){$("bloc_confirmation").style.display = "none";}, 2000);
    				setTimeout(function(){document.location.href = "index.php?page=gestion_jours_feries"}, 2000);
    			}
    		}
    		);
    	}
    }

    Comme vous le voyez je fais une requête Ajax (j'utilise prototype) qui transmet l'id du jour férié et appelle le traitement "trait_supprime_jour_ferie.php" que voici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <?php 
     
     require_once("../modele/modele.php"); 
      
     $modele = New Modele(); 
     $bdd = $modele->connexion(); 
     
     $requete = $bdd->prepare("DELETE FROM jour_ferie WHERE id_jour_ferie = :id_jour_ferie"); 
     $requete->bindValue(":id_jour_ferie", $_POST['id_jour_ferie']); 
     $requete->execute(); 
      
     $bdd = $modele->deconnexion(); 
      
    ?>

    Le fonctionnement marche ce n'est pas ça le problème, mais si je supprime une ligne, IE8 ne met pas à jour la liste (il faut réactualiser super...) et la page reste telle quelle alors que Firefox supprime la ligne, enfin met à jour la liste quoi !

    J'ai essayé plein de chose, le coup des headers (genre "header("Cache-Control: no-cache"); " dans tous les fichiers php (je sais pas trop où il faut les mettre), peut être me suis-je trompé d'endroit ?

    Le coup de la variable aléatoire dans la page cible, mais là pareil je sais pas si j'ai fait ça au bon endroit, quoique j'ai essayé tellement de combinaison...

    Donc voilà si quelqu'un pouvait m'éclairer sur les 2 solutions que je viens d'exposer où si quelqu'un a une autre solution je suis vraiment preneur !

    Merci à tous !

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 074
    Points : 44 666
    Points
    44 666
    Par défaut
    Bonsoir,
    si c'est un problème de cache
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var url = "modele/trait_supprime_jour_ferie.php" +"?nocache=" +new Date();
    devrait régler le problème

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Malheureusement ça ne fonctionne pas, la page reste désespérément figée tant que je ne reclique pas sur le bouton OK

  4. #4
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    A mon avis, il y a un truc qui ne va pas dans ce que tu fais: pourquoi faire une requete Ajax, si par derrière tu recharges ta page (cf setTimeout(function(){document.location.href = "index.php?page=gestion_jours_feries"}, 2000); ) ?

    Supprime simplement la ligne de ton tableau (si c'est cette structure html que tu as utilisé) dans le onsuccess de ta fonction ajax.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    En fait l'instruction qui recharge la page n'y était pas à l'origine, c'était un test pour essayer de rafraichir la page...je l'ai enlevé depuis.

    Pour ta soluce, le truc c'est que c'est bien un tableau HTML en effet, mais qui est généré en PHP dans un autre traitement !

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Bon ça y est j'ai trouvé !

    J'ai mis "asynchronous: false," à ma requête Ajax et maintenant la ligne disparait !

  7. #7
    Membre expérimenté Avatar de DoubleU
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 106
    Points : 1 388
    Points
    1 388
    Par défaut
    Peu importe, à partir du moment où le code est généré, et envoyé au client, tu n'as plus que du html à manipuler.

    Il te suffit d'utiliser la fonction qui supprime une ligne dans un tableau ([table].removeRow de mémoire).

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2011
    Messages : 9
    Points : 6
    Points
    6
    Par défaut
    Ah d'accord, merci en tout cas pour cette solution, je vais la tester également.

Discussions similaires

  1. [AJAX] AJAX xml xslt LES xmlentities
    Par JLC83 dans le forum AJAX
    Réponses: 0
    Dernier message: 27/08/2010, 16h17
  2. Réponses: 0
    Dernier message: 06/01/2010, 10h04
  3. Instance Unique de programme, les exemples ne marchent pas
    Par novatronics dans le forum Général Java
    Réponses: 6
    Dernier message: 30/03/2009, 15h33
  4. les ping ne marchent pas
    Par f56bre dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/10/2006, 14h18
  5. [VB.NET] Les évènements ne marchent pas
    Par Dnx dans le forum ASP.NET
    Réponses: 6
    Dernier message: 28/01/2005, 12h54

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