web-dev-qa-db-fra.com

appelant javascript depuis php

J'essaie d'appeler une fonction javascript depuis php. D'après tous les exemples que j'ai examinés, ce qui suit devrait fonctionner, mais cela ne fonctionne pas. Pourquoi pas?

 <?php
    echo "function test";
    echo '<script type="text/javascript">    run();      </script>';
?>

<html>
    <script type="text/javascript">
        function run(){
            alert("hello world");
        }
    </script>
</html>
8
user1334130

Votre code HTML est invalide. Il vous manque des balises. 

Et vous devez appeler la fonction après sa déclaration, comme ceci

<html>
    <head>
       <title></title>

       <script type="text/javascript">
            function run(){
                alert("hello world");
            }

           <?php
               echo "run();";
           ?>
       </script>

    </head>
    <body>
    </body>
</html>

Dans ce cas, vous pouvez placer l'exécution avant la déclaration de la méthode, mais dès que vous enroulez l'appel de méthode dans une autre balise de script, celle-ci doit se situer après la déclaration de la méthode.

Essayez vous-même http://jsfiddle.net/qdwXv/

16
Artjom Zabelin

la fonction doit déclarer avant utilisation
CA devrait etre 

<html>
    <script type="text/javascript">
        function run(){
            alert("hello world");
        }
       <?php
       echo "function test";
        echo   run();      ;
     ?>
    </script>
</html>
4
NullPoiиteя

Comme d'autres l'ont suggéré, la fonction doit être déclarée en premier. Toutefois, si vous devez commencer par reprendre le code JavaScript de PHP, vous pouvez soit le stocker dans une variable PHP pour qu'il soit répercuté ultérieurement, ou bien laisser votre code attendre que le fichier dom soit terminé. .

document.ready = function() {
    run()
  }

Si vous utilisez jQuery ou un autre framework, ils ont probablement une meilleure façon de le faire ... Dans jQuery:

$(function(){
   run();
})
0
Thom Porter