使用外部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脚本不起作用[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
在 msxsl 中将节点作为参数传递:来自 XSLT for-each 的脚本 javascript 函数不起作用
c#带有Highchart的WPF Webbrowser,来自外部源的Javascript不起作用“此页面上的脚本中发生错误”
使用 JavaScript e.target 在元素外部单击不起作用