与外部javascript一起传递的php脚本不起作用


php script passed with external javascript is not working

因此,在我的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>