好的,我现在正在做的只是回显一个脚本标签。例如:
echo '<script>alert("Hello world")</script>';
这是正确的方法吗?还是有更好的方法?
答案 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
而不是手动打印所有对象/数组。