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] Exécuter JS dans réponse Ajax


Sujet :

JavaScript

  1. #1
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut [AJAX] Exécuter JS dans réponse Ajax
    J'ai recherché sur ce sujet, mais je n'ai rien trouver, je suis étonné, je ne suis sûrement pas le premier à me casser le nez là dessus ?

    Mon problème est simple: Comme puis-je faire pour que le code Javascript qui est contenu dans la réponse à mon appel Ajax puisse s'éxécuter ?

    Voici un code exemple ou je fais mes tests qui ne fonctionne pas.
    J'ai essayé de faire court. Merci
    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
    <html>
    <body>
    <script type="text/javascript">
    var i = 0;
     
    function ajax(){
        var xhr=null;
     
        if (window.XMLHttpRequest) { 
            xhr = new XMLHttpRequest();
        }
        else if (window.ActiveXObject) 
        {
            xhr = new ActiveXObject("Microsoft.XMLHTTP");
        }
        //on définit l'appel de la fonction au retour serveur
        xhr.onreadystatechange = function() { Display_ajax(xhr); };
     
        //on appelle le fichier reponse.txt
        xhr.open("GET", "reponse.php", true);
        xhr.send(null);
    }
     
    function Display_ajax(xhr){
     
        if (xhr.readyState==4) 
        {
        	// Declaration de la variable de retour HTML
    		var My_html_Response = xhr.responseText;
     
        	document.getElementById("result").innerHTML = My_html_Response;
        }
    }
     
    function insert(){
    	var myRow = document.getElementById('ta').insertRow(-1);
     
    	var newCell = myRow.insertCell(0);
    	i++;
    	newCell.innerHTML = 'nouvelle cellule '+i;
    }
    </script>
    <p><a href="javascript:ajax();">Insérer une ligne via Ajax</a></p>
    <p><a href="javascript:insert();">Insérer une ligne direct</a></p>
     
    <div id=result>Attente</div>
     
    <table id="ta" border=1>
    	<tr><td>Ligne 0</td></tr>
    </table>
    </body>
    </html>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    echo "<script>
                            insert();
                            //alert(\"Ajout de ligne\");
            </script>";
    ?>
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  2. #2
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec(My_html_Response);
    par hasard?
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  3. #3
    Membre averti
    Avatar de HumanTool
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Points : 378
    Points
    378
    Par défaut
    salut,
    c'est pas eval() ?
    D'abord ils vous ignorent, ensuite ils se moquent de vous, puis ils vous combattent, enfin vous gagnez (Gandhi)

  4. #4
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par supersnail Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    exec(My_html_Response);
    par hasard?
    J'ai remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // document.getElementById("result").innerHTML = My_html_Response;
    exec(My_html_Response);
    Evidement la fonction exec() n'est déclarée nul part. Tu as sûrement oublié de me donner le détail de la fonction. A moins qu'il s'agisse d'une fonction JS qui m'est inconnu (ce qui est possible).
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  5. #5
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Citation Envoyé par HumanTool Voir le message
    salut,
    c'est pas eval() ?
    Eval ne donne rien non plus.
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

  6. #6
    Membre averti
    Avatar de HumanTool
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2006
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2006
    Messages : 276
    Points : 378
    Points
    378
    Par défaut
    en php, ne renvoi pas les balises script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo "insert();"
    ?>
    mais est ce que tu enverras toujours cette ligne, parce que dans ce cas il y a un truc à revoir sur l'utilité de faire eval d'une réponse du serveur ?

    sinon eval est de la sorte :
    D'abord ils vous ignorent, ensuite ils se moquent de vous, puis ils vous combattent, enfin vous gagnez (Gandhi)

  7. #7
    Membre émérite
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Points : 2 793
    Points
    2 793
    Par défaut
    Arf.. oui,c'était eval

    Sinon,tu as quels messages d'erreur?
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais, il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plutôt des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  8. #8
    Membre expérimenté Avatar de riete
    Homme Profil pro
    DevWeb - Oléiculteur
    Inscrit en
    Avril 2006
    Messages
    1 193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : DevWeb - Oléiculteur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 193
    Points : 1 414
    Points
    1 414
    Par défaut
    Après de nombreux déboires, je suis parvenu à mes fins. Merci à vous de m'avoir aiguiller.
    Pour ceux que cela pourrait aider, j'ai remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("result").innerHTML = My_html_Response;
    Par (et tout repose sur cette modif
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    eval(My_html_Response);
    Le code php est simplement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php
    echo "insert();"
    ?>
    ----
    L'avenir appartient à ceux dont les salariés se lèvent tôt.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 17/04/2012, 00h49
  2. Réponses: 3
    Dernier message: 02/07/2010, 23h58
  3. [AJAX] Comment gérer des réponses ajax simultanées ?!
    Par jahjah92 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/09/2007, 21h48
  4. [AJAX] execution js dans page ajax
    Par Mat_DZ dans le forum Général JavaScript
    Réponses: 11
    Dernier message: 11/03/2007, 20h39
  5. [AJAX] Exécution Javascript dans XSL (FireFox)
    Par mchaz84 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 06/03/2007, 08h48

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