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

jQuery Discussion :

Exécution de JS après rechargement AJAX


Sujet :

jQuery

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut Exécution de JS après rechargement AJAX
    Bonjour, le contenu de mes balises <script> ne s'exécute plus après que la page qui les contient ait été rechargée par AJAX... y a t-il une solution pour y remédier ?

    PS : peut-être qu'il vaudrait mieux poster dans la rubrique AJAX, je ne sais pas trop...

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    1/ la première chose à faire aurait été de faire une recherche sur le forum : "Executer Javascript chargé par Ajax"
    Tu aurais trouvé un tas de post sur le même sujet.
    Et sûrement trouvé des explications/solutions.

    La FAQ JavaScript est aussi là pour ça.
    Notamment la section : Les technologies d'Ajax

    2/ Montrer ton code n'est pas inutile, si tu veux vraiment qu'on t'aide à résoudre le souci.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Merci j'ai lu la fac et d'autres messages et j'ai trouvé une technique, mais qui marche qu'à moitié. Après rafraichissement ajax j'ai bien l'alerte juste après ma balise script qui fonctionne, par contre le menu clic droit juste après ne s'actualise pas alors que les valeurs qu'ils comprend devraient etre différentes d'avant le rafraichissement.

    le div "zoneafficherequipes" englobe cette page qui est rafraichit par ajax (afficherequipes.php)
    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
    <script> alert('test');
    //menu
     
    	$(function(){ 
        $.contextMenu({ 
            selector: '.context-menu-one', 
            callback: function(key, options) {
    var id =  $(this).attr("id");
    var affichage = $(this).attr("data-affichage");
    var statut = $(this).attr("data-statut");
    var mode = $(this).attr("data-mode");
    var autre = $(this).attr("data-autre");
     
    		if(key != "quit") eval(key);
            },
            items: {
    		<?php
                    $STATUTS = "SELECT * FROM statuts";
                    $REQSTATUTS = mysql_query($STATUTS); 
                    while($RSTATUTS = mysql_fetch_array($REQSTATUTS))
                    {
                    ?>
     
                "changer_statut(id,<?php echo $RSTATUTS['id']; ?>,statut,affichage,mode,autre);": {name: "<?php echo $RSTATUTS['type']; ?>", icon: "<?php echo $RSTATUTS['abreviation']; ?>"},
     
    			<?php
                            }
                            ?>
                "sep1": "---------",
                "quit": {name: "Quit", icon: "quit"}
            }
        });
     
        $('.context-menu-one').on('click', function(e){
            //console.log('clicked', this);
        })
    });
    </script>
    La page ajax.js
    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
    function recharger_afficherequipes()
    { 
     
        http_recharger_afficherequipes.open("GET", "afficherequipes.php", true);
        http_recharger_afficherequipes.onreadystatechange = handleHttpResponse_recharger_afficherequipes;
        http_recharger_afficherequipes.send(null); 
     
    }
     
    function handleHttpResponse_recharger_afficherequipes()
    {   
        if (http_recharger_afficherequipes.readyState == 4)
        { 
     
           Getobjet("zoneafficherequipes").innerHTML = http_recharger_afficherequipes.responseText;
    	   script_afficherequipes();
       }    
    }
     
    function script_afficherequipes()
    {
    var mesScripts = document.getElementById("zoneafficherequipes").getElementsByTagName("script");
    for (var i=0; i<mesScripts.length; i++) {
    eval(mesScripts[i].innerHTML);
    }
    }

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Citation Envoyé par Jeff2marseille Voir le message
    Bonjour, le contenu de mes balises <script> ne s'exécute plus après que la page qui les contient ait été rechargée par AJAX... y a t-il une solution pour y remédier ?
    Un script doit toujours se trouver dans un fichier séparé. On doit utiliser $.getScript().

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 7
    Par défaut
    Je ne peux pas le mettre dans un fichier séparé puisque je construit le menu à partir d'éléments de ma BDD et de PHP.

Discussions similaires

  1. [Prototype] JavaScript ne marche plus après rechargement Ajax
    Par Nelieru dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 03/08/2011, 16h01
  2. Recharger le DOM après appel AJAX
    Par Maerlyn31 dans le forum jQuery
    Réponses: 4
    Dernier message: 13/07/2011, 09h53
  3. exécution javascript après appel ajax
    Par Gaani dans le forum jQuery
    Réponses: 3
    Dernier message: 21/09/2009, 16h56
  4. Réponses: 9
    Dernier message: 18/10/2006, 11h18
  5. Excuter quelque chose apres l'arret des scrollbar
    Par m14w dans le forum Composants VCL
    Réponses: 1
    Dernier message: 06/01/2006, 23h52

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