因此,在我的php页面中,我有以下代码:
<div id="test"></div>
<script src="test.js"></script>
在我的外部javascript中,我有:
document.getElementById('test').innerHTML=
"<div id='abc'><a href='index.html'><?php echo 'Welcome '.$_COOKIE['user'].'<br>' ;?></a></div>";
Cookie已经设置好了,如果我把脚本放在php页面中,它确实可以工作,但为什么它是外部脚本却不能工作?我做错什么了吗?或者有这样做的规则吗?
请教育我。提前Thx=D
虽然同时使用PHP和javascript是绝对可能的,但您必须记住,PHP在服务器端执行,而javascript在客户端执行。
因此,javascript中不能包含PHP,因为页面生命周期如下所示:
- 从客户端浏览器获取请求
- 执行请求页面的PHP并提供html
- 将html发送到客户端浏览器
- 在客户端浏览器中渲染html
- 执行页面的javascript
因此,在发送页面之后,php处理就完成了。
但是,您可以通过php嵌入变量,以便以后与javascript一起使用。如果你回显这样的东西,你的java脚本可以使用它:
<script type="text/javascript">
var myCookie = "<?php echo $_COOKIE['user'];?>";
</script>
如果你在javascript中使用cookie做了很多事情,你可能会更好地查看jQuery cookies并直接获取cookie值。这将使您最终得到更干净的代码。
不能在这样的javascript文件中使用PHP。它们是两种完全不同的语言。
您不能在Javascript文件上呈现php,但您可以这样做:
在您的php文件上:
<script>
var cookie = "<?php echo 'Welcome ' . $_COOKIE['user'] . '<br>'; ?>";
</script>
<div id="test"></div>
在你的js文件中:
document.getElmentById('test').innerHTML = cookie;
问候
我们不能在js文件中添加php代码。
PHP是服务器端脚本语言,将在服务器中执行,响应将返回到浏览器,而Javascript是客户端脚本语言,在浏览器中执行。
这是一个解决方案,但只需使用ajax从服务器获取所需信息。
<div id="dom-target" style="display: none;">
<?php
$output = "42"; //Again, do some operation, get the output.
echo htmlspecialchars($output); /* You have to escape because the result
will not be valid HTML otherwise. */
?>
</div>
<script>
var div = document.getElementById("dom-target");
var myData = div.textContent;
</script>