在javascript中获取php变量

时间:2010-05-07 10:57:48

标签: php javascript

我遇到了一个有趣的问题。我目前正在开发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变量是否有效?

6 个答案:

答案 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" />