使用外部javascript传递的php脚本不起作用[关闭]

Posted

技术标签:

【中文标题】使用外部javascript传递的php脚本不起作用[关闭]【英文标题】:php script passed with external javascript is not working [closed] 【发布时间】:2014-11-03 19:23:26 【问题描述】:

所以在我的 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 页面中,它确实可以工作,但是为什么当它是外部脚本时它不工作?我在这里做错了吗?还是有这样做的规则?

请教育我。 提前谢谢。 =D

【问题讨论】:

JavaScript 文件中不能包含 PHP。除非您告诉服务器它需要将其呈现为 PHP。 你可以在这里找到答案***.com/a/9083465/3808383请养成自己搜索的习惯。有很多与您的问题非常相似的已回答问题。 Use PHP code in external Javascript file的可能重复 【参考方案1】:

虽然完全可以同时使用 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。我也在努力学习 jquery。【参考方案2】:

您不能在这样的 javascript 文件中使用 PHP。它们是两种完全不同的语言。

【讨论】:

【参考方案3】:

你不能在 Javascript 文件上渲染 php,但是你可以这样做:

在您的 php 文件中:

<script>
var cookie = "<?php echo 'Welcome '  . $_COOKIE['user'] . '<br>'; ?>";
</script>
<div id="test"></div>

在你的 js 文件中:

document.getElmentById('test').innerHTML = cookie;

问候

【讨论】:

【参考方案4】:

我们无法在 js 文件中添加 php 代码。

PHP 是服务器端脚本语言,将在服务器中执行并将响应返回给浏览器,而 Javascript 是客户端脚本语言,将在浏览器中执行。

【讨论】:

【参考方案5】:

这是一个解决方案,但只是使用 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>

【讨论】:

使用 AJAX?这是不必要的,你甚至没有展示它。 是的。这是曲奇。我的错。这种情况下,通过js获取cookie。

以上是关于使用外部javascript传递的php脚本不起作用[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP/MySQL 插入中转义单引号不起作用

在 msxsl 中将节点作为参数传递:来自 XSLT for-each 的脚本 javascript 函数不起作用

c#带有Highchart的WPF Webbrowser,来自外部源的Javascript不起作用“此页面上的脚本中发生错误”

使用 JavaScript e.target 在元素外部单击不起作用

将 PHP 变量传递给外部 JavaScript(或 jQuery)文件的最有效方法

将 PHP 变量传递给外部 JavaScript(或 jQuery)文件的最有效方法