2010-07-10 104 views
0

好吧,我现在正在做的只是回应脚本标记。例如:如何从PHP函数执行Javascript代码?

echo '<script>alert("Hello world")</script>'; 

这是正确的方法吗?或者,还有更好的方法?

+0

请你最后审查的答案,这和你以前的问题,并接受最有帮助的人或编辑您的问题指出为什么没有答案能解决你的问题。我们花了我们的时间来帮助你,现在请花些时间来表达一些赞赏。谢谢。 – Gordon 2010-11-01 16:39:59

回答

10

您无法从PHP执行JavaScript。除非您使用的是Server-side JavaScript,否则所有JavaScript都只在客户端执行 - 在浏览器中执行。这意味着您的PHP代码只有的JS代码写入浏览器稍后将显示的页面上。这个页面是从你的网络服务器提供给请求浏览器的,那么JS代码是然后执行。对于PHP,你所回应的JS没有任何意义。这只是一个像所有其他的字符串。

除此之外,是的。这是你如何做到的。

1

对于执行一个函数我不这么认为。但是,如果处理更复杂的对象和序列化,则可以尝试json_encode而不是手动打印所有对象/阵列。

2

正如Gordon所说,你不能从执行 js。只有您可以生成 js代码以及HTML并将其发送到将要执行的浏览器。

为更好的方法,你可以从PHP逃脱,写纯DHTML的是:

function jsalert() { 
?> 
<script>alert("Hello world")</script> 
<? 
} 

它被认为是明显的原因更好。

还考虑将您的应用程序分为两部分:业务逻辑和表示逻辑。 (D)HTML应该只出现在后者中。一个最简单但功能强大且广泛使用的表示逻辑部分的例子就像只包含在业务逻辑文件中的php文件一样简单。
说,这里有云业务逻辑

<? 
$str = "Hello world!"; 
include "js-tpl-example.php"; 
?> 

和模板:

<html> 
<title></title> 
<body> 
<script>alert("<?=$str?>")</script>'; 
</body> 
</html>