我遇到了一个有趣的问题。我目前正在开发php页面,需要访问javascript onload中的php变量。
$(document).ready(function() {
var temp = <?php $page_id ?>
}
这是有效的吗?我知道这可能看起来很奇怪而且不被允许,但我正在开发一个有两个弹出窗口的页面。窗口是使用相同的视图模板创建的,无法区分彼此。如果我在页面上存储了一个隐藏值,其中包含页面特有的信息
<input type="hidden" value="<?php $page_id ?> id="page_id" />
如果同时打开两个视图,我就无法获得如此唯一的页面ID
var temp = $("#page_id").val();
因为有两个具有相同输入ID的视图不是唯一的。长话短说,在javascript中引用php变量是否有效?
答案 0 :(得分:1)
长话短说是有效的 引用一个php变量 的JavaScript。
简短回答,是的,你可以...... PHP是服务器端语言,你可以在任何你想要的地方使用它。
注意:我假设您在扩展名为php
的文件中执行此操作。
答案 1 :(得分:1)
长话短说是在JavaScript中引用php变量有效吗?
您没有在JavaScript中引用PHP变量。您只是通过PHP动态生成JavaScript代码,其中PHP变量$page_id
的值被硬编码到JavaScript代码中。
如果您通过PHP生成JavaScript代码,并且使用var temp = <?php echo $page_id ?>
它将起作用,但我不认为这是大型项目的最佳实践。我更喜欢我的JavaScript代码保持静态。
答案 2 :(得分:0)
您可以在this question找到答案。
答案 3 :(得分:0)
只要您生成javascript,您的第一段代码就有效。如果将js代码放在单独的.js文件中,那么同样不会起作用。生成动态js并不是一个好的做法,原因有几个,例如js浏览器缓存和重用。
如果你想完全分离php的js代码,你可以创建一个客户端 - 服务器通信,其中js将通过ajax从php脚本中请求特定值,然后在js环境中使用它。
答案 4 :(得分:0)
你唯一需要澄清的是 事实上,您无法传递变量。你只能传递它的价值 此外,人们不能“传递”从PHP到javascript的任何东西。 PHP正在生成的Javascript。它就像HTML。您只需生成所需的任何代码。当然,您可以使用任何变量来生成此代码。
答案 5 :(得分:0)
您的第二个示例也可以,但您需要将PHP变量的值回显到页面,以便JavaScript可以从中读取。还可以使用htmlspecialchars确保不会出现无效的html。
<input type="hidden" value="<?php echo htmlspecialchars($page_id, ENT_QUOTES) ?>" id="page_id" />