如何从PHP函数执行Javascript代码?

时间:2010-07-10 08:54:03

标签: php javascript

好的,我现在正在做的只是回显一个脚本标签。例如:

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

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

3 个答案:

答案 0 :(得分:10)

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

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

答案 1 :(得分:2)

正如戈登所说,你不能从em 执行 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>

答案 2 :(得分:1)

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