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 :

Interpréter javascript après appel ajax


Sujet :

jQuery

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut Interpréter javascript après appel ajax
    Bonjour,

    je viens vous solliciter car je commence à désespérer.

    J'ai décidé de passer de prototype à jquery pour des raisons de performance entre autre.
    Dans prototype, au moment de ma requête ajax, j'avais une option evalscript qui permettait de garder mes actions javascript une fois le traitement effectué.

    J'ai cherché son équivalent au niveau de jquery en vain, d'où ma sollicitation.
    De ce que j'aurai compris, la dernière version de jquery (1.3.2) ne nécessite plus d'evalscript car il réinterprète le code, mais ce n'est pas le cas chez moi.

    Je précise que tout s'exécute au niveau d'une fenêtre modal appelé par la fonction dialog(), c'est donc peut être cela qui empêche se rechargement.
    Une autre solution serait peut être de recharger cette fenêtre, mais la encore je n'ai pas trouvé.

    Si quelqu'un peut m'aider, je suis preneur car la je suis perdu.

    Merci d'avance

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Salut !

    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    Merci pour cette réponse, et en effet j'avais cru comprendre que cette option servait à cela, mais ça ne marche pas chez moi...

    Voila mon code ajax pour plus de détail :

    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
     
    $.ajax({  
    		type: "POST",  
    		url: "ajax.php",  
    		data: "value="+value,
    		dataType: 'html',
    		beforeSend: function(){  
    			$('#content').html(''); // efface le contenu actuel
    			$('#load').show(); // affiche l'image de chargement
    		},
    		success: function(){  
    			$('#load').hide();
    			$('#content').load('ma_page.php');
    		}
    	});
    J'ai donc deux interrogations.
    - est ce parce que je fais un load que ça ne marche pas ?
    - ou est ce parce que je me trouve dans une fenêtre modal via la fonction dialog() ?

    Merci beaucoup pour votre aide en tout cas

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    JQuery évalue les script javascript contenu dans des réponses html uniquement
    au moment de l'insertion dans le DOM, pas au moment de la réception.

    Dans ton exemple, tu ne gère même pas la réponse dans success, aucune
    chance que le script soit évalué.

    Par contre tu lances une deuxième requête ajax avec load(), dans ce cas
    il y aura évaluation du javascript contenu dans la réponse de ma_page.php
    car il y a insertion dans #content

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Par défaut
    Merci pour cette réponse même si je ne suis pas bien sur de la comprendre.

    D'un côté tu dis qu'il n'y a pas de chance que ce soit réinterprété et de l'autre que via le load ça devrait ?

    Qu'est ce que tu entends par non gestion de la réponse dans success ?

    Le but ici, est suite à une action, réactualiser la page (ou plutot la fenetre modale) pour afficher le résultat de l'action (un insert dans une bdd, donc une ligne de plus dans la page). Donc pour moi la réponse se situe au niveau du load. Après je me trompe peut être en faisant un load, il y a peut être un moyen plus simple.

    "ajax.php" contient l'insertion dans la bdd et "ma_page.php" contient tout le code d'affichage avec notamment les JS que je veux réinterpréter. C'est cette même page qui est chargé au lancement de la fenetre modale.

    Merci pour ton aide

  6. #6
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Ok, je pensais que ton script javascript se situait dans ajax.php

    la fonction load fait une requête Ajax et insère le résultat dans le DOM,
    donc elle évalue les script à cet instant là.

    tu devrais tester déjà en créant un contenu statique dans ma_page.php
    avec quelque chose du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <p>test</p>
    <script type='text/javascript'>
      alert('coucou');
    </script>

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

Discussions similaires

  1. [MVC] Récuperation d'un élément de session après appel Ajax
    Par zulot dans le forum Spring Web
    Réponses: 0
    Dernier message: 14/02/2011, 14h39
  2. Rafraichir un contrôle après appel ajax.
    Par maniaco_jazz dans le forum ASP.NET
    Réponses: 6
    Dernier message: 20/05/2010, 11h04
  3. backgroundColor des TR après appel AJAX
    Par __fabrice dans le forum jQuery
    Réponses: 3
    Dernier message: 22/04/2010, 18h55
  4. plus de javascript aprés requéte ajax pour mon menu
    Par pouktoro dans le forum jQuery
    Réponses: 2
    Dernier message: 23/10/2009, 13h44
  5. exécution javascript après appel ajax
    Par Gaani dans le forum jQuery
    Réponses: 3
    Dernier message: 21/09/2009, 16h56

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