2012-10-10 32 views
8

Estoy tratando de llamar a una función javascript desde php. De acuerdo con todos los ejemplos que he estado viendo, lo siguiente debería funcionar, pero no es así. Por qué no?llamando a la función javascript desde php

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

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

Debe ejecutar la función después de haber sido declarada. En el ejemplo anterior, ejecutas una función no definida. –

+0

Pero eso no tiene sentido, probé esto pero colocando una ejecución(); dentro de javascript antes de que se definiera la función y todavía llamaba a la función correctamente. – user1334130

+0

Tiene perfecto sentido. Puede ejecutarlo en EL MISMO "

4

la función debe declarar antes de su uso
debe ser

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

Como otros han sugerido, la función tiene que ser declarado en primer lugar. Sin embargo, si necesita hacerse eco de la primera JavaScript desde PHP, puede almacenarlo en una variable PHP a hacerse eco más tarde, o que su código espere a que el DOM para terminar de cargar primero ...

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

Si está utilizando jQuery u otro marco, probablemente tengan una mejor manera de hacerlo ... En jQuery:

$(function(){ 
    run(); 
}) 
Cuestiones relacionadas