2012-10-10 42 views
8

Tôi đang cố gắng gọi một hàm javascript từ php. Theo tất cả các ví dụ tôi đã được xem xét sau đây nên làm việc nhưng nó không. Tại sao không?gọi hàm javascript từ 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

Bạn phải thực thi hàm sau khi nó được khai báo. Trong ví dụ trên, bạn thực thi hàm undefined. –

+0

Nhưng điều đó không có ý nghĩa, tôi đã thử nghiệm điều này nhưng đặt một run(); bên trong javascript trước khi hàm được xác định và nó vẫn được gọi là hàm một cách chính xác. – user1334130

+0

Nó có ý nghĩa hoàn hảo. Bạn có thể thực hiện nó trong phạm vi "

4

chức năng phải khai báo trước khi sử dụng
nó phải được

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

Như những người khác đã gợi ý, chức năng cần phải được khai báo đầu tiên. Nhưng, nếu bạn cần phải echo ra JavaScript từ PHP đầu tiên, bạn có thể lưu nó trong một biến PHP để echo ra sau, hoặc có chờ đợi mã của bạn cho dom để kết thúc nạp đầu tiên ...

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

Nếu bạn đang sử dụng jQuery hoặc một khung công tác khác, họ probalby có cách tốt hơn để làm điều đó ... Trong jQuery:

$(function(){ 
    run(); 
}) 
Các vấn đề liên quan