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 :

activer javascript dans php


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 153
    Points : 56
    Points
    56
    Par défaut activer javascript dans php
    Bonjour à tous,

    J'utilise l'objet ActiveXObject pour FF (ou XMLHttpRequest) pour appeler une page test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    XhrObj.open("GET", "test.php", false);
    Mais j'ai remarqué que le javascript ne peut être exécuté dans la page test.php. Ce qui me pose un GROS problème.
    J'ai lu beaucoup de chose mais rien à faire, je ne parviens pas à exexcuter du code javascript dans test.php. Comment faire, j'ai cru lire que eval() devait résoudre mon problème, mais comment l'utiliser ????

    pour mes essais j'essaie d'afficher un alert dans test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       eval("\ $str = \"<script type='text/javascript'> alert('yep') </script>\" ;");
       echo $str;
    Mais rien à faire ca ne marche pas

    Vous avez une solution efficace ??????

    Un grand merci pour votre aide ...

  2. #2
    Expert confirmé
    Avatar de RomainVALERI
    Homme Profil pro
    POOête
    Inscrit en
    Avril 2008
    Messages
    2 652
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : POOête

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 652
    Points : 4 164
    Points
    4 164
    Par défaut
    Attention : php et js ne sont pas exécutés du même "côté" de ton site : js sur le poste client, php sur le serveur : ils ne seront donc jamais exécutés en même temps (c'est très mal dit mais je vais tenter un exemple ^^)

    Essaie plutot quelque chose du style :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $str = "alert('yep');";
    echo $str;
    et côté js : (dans la partie "callback de ta fonction ajax, c.a.d. couramment if (XhrObj.readyState == 4 & XhrObj.status == 200) de la fonction onreadystatechange)
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    eval(XhrObj.responseText);

    ...pour les linguistes et les curieux >>> générateur de phrases aléatoires

    __________________

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    merci pour ta réponse RomainVALERI, malheureusement, ça ne fonctionne pas
    voici le code de ma fonction javascript dans page1.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
    function sendData ()
       {
           if(document.all){
               var XhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;//Internet Explorer
           }
           else{
               var XhrObj = new XMLHttpRequest();//Mozilla
           }
     
           //définition de l'endroit d'affichage:
           var content = document.getElementById("emplacement");
     
           XhrObj.open("GET", "test.php", false);
           XhrObj.send(null);      
           content.innerHTML = eval (XhrObj.responseText);
           return (false);
       }
    et test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        $str = "<script type='text/javascript'> alert('yep') </script>";
        echo $str;
    je sais bien que php est coté serveur et javascript sur le poste client, mais dans ma compréhension des choses, suite à un clique dans page1.php, la fonction sendData est appelée puis celle-ci appelle la page test.php, une fois que celle-ci est placée dans le container, ici "emplacement", le javascript doit pouvoir s'exécuter tout comme une nouvelle page php affichée !!! mais je dois me tromper !!!! ...

  4. #4
    Expert confirmé
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Points : 4 045
    Points
    4 045
    Par défaut
    Salut,

    Relis le post de Romain il est très clair: tu dois faire un eval de code javascript. Et la fonction eval exécute ce code.

    Donc:
    1. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      eval("<script type='text/javascript'> alert('yep') </script>");
      est incorrect (tout du moins pour le résultat escompté) et doit être remplacé par qui lui est bien du javascript.
    2. il ne sert à rien d'affecter eval à document.getElementById("emplacement") puisque eval fait déjà ce que tu attends.


    Modifie test.php en conséquence et évalue simplement le retour comme Romain te l'écrivais.

    ERE
    Quand une tête pense seule, elle devient folle.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    oula c'est un peu décousu pour moi tout ça ... je suis désolé ...
    Déjà je viens de comprendre qu'il me fallait une callback pour que j'
    évalue simplement le retour
    j'ai donc ajouté ceci dans mon sendData
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
           XhrObj.onreadystatechange = function()
           {
              if (XhrObj.readyState == 4 && XhrObj.status == 200)  
              {  
            	    var doc = eval (XhrObj.responseXML);
              }
           }
    Ai-je bon ???
    Aussi j'ai remi le code de Romain dans mon test.php à savoir Je pense que tu as fait une petit erreur emmanuel et ne pas mettre, je me trompe ???

    Par contre je ne reçois rien dans ma callback.

    Je voulais juste savoir, avez-vous un code simple pour que je comprenne comment cela doit fonctionner ??

  6. #6
    jnore
    Invité(e)
    Par défaut
    Citation Envoyé par Regis0122 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var doc = eval (XhrObj.responseXML);
    Attention, tu as transformé ton XhrObj.responseText en XhrObj.responseXML.
    Javascript ne va pas interpréter cela de la même façon !!

    Remet ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var doc = eval (XhrObj.responseText);
    Sachant que test.php doit contenir:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "alert('yep');";

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    bien vue jnore et ca ca marche :

    le code javascript
    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
    function sendData (cpt)
       {
           if(document.all){
               var xhrObj = new ActiveXObject("Microsoft.XMLHTTP") ;//Internet Explorer
           }
           else{
               var xhrObj = new XMLHttpRequest();//Mozilla
           }
     
           xhrObj.open('GET', 'test.php', true);
           xhrObj.send('');
     
           xhrObj.onreadystatechange = function() { 
             if ( xhrObj.readyState != 4 ) return;
                 eval(xhrObj.responseText);
               };
        }
    test.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
       $str = "alert('youpiiii');";
       echo $str;
    j'ai aussi compris que xhrObj.open('GET', 'test.php', true); doit forcément être asynchrone, n'est-ce pas Romain

    Un grand merci à vous tous

  8. #8
    jnore
    Invité(e)
    Par défaut
    Citation Envoyé par Regis0122 Voir le message

    j'ai aussi compris que xhrObj.open('GET', 'test.php', true); doit forcément être asynchrone, n'est-ce pas Romain

    Un grand merci à vous tous
    Ca n'est pas une obligation mais en asynchrone, il est vrai que le confort y est .

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 153
    Points : 56
    Points
    56
    Par défaut
    j'avais fait un essai en passant à false, mais cela ne fonctionnait pas. J'ai fait tellement de manip que j'ai peut-être fait une mauvaise conclusion.

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

Discussions similaires

  1. [PHP-JS] inclure du javascript dans php
    Par CB56 dans le forum Langage
    Réponses: 4
    Dernier message: 13/09/2006, 14h53
  2. [PHP-JS] recuperer une variable javascript dan php
    Par hammag dans le forum Langage
    Réponses: 2
    Dernier message: 07/08/2006, 14h00
  3. [PHP-JS] Insertion Javascript dans PHP
    Par andrewwww dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 21/04/2006, 17h04
  4. [PHP-JS] Intégration code Javascript dans PHP
    Par tilou dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/04/2006, 15h26
  5. [PHP-JS] retour valeur javaScript dans php
    Par Tempotpo dans le forum Langage
    Réponses: 6
    Dernier message: 06/04/2006, 11h35

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