如何将PHP会话变量传递给Javascript/jQuery函数?
我有一个加载会话变量PHP页面:如何将PHP会话变量传递给Javascript/jQuery函数?
$user_id = $_SESSION['USER_ID'];
以前,我在该网页中包含我的Javascript/jQuery的,并添加<? echo $user_id; ?>
设置JavaScript变量:
$(document).ready(function() {
$(".button").click(function() {
var user_id = <? echo $user_id; ?>
var dataString = 'user_id=' + user_id;
$.ajax({
type: "POST",
url: "../add_user.php",
data: dataString,
});
return false
});
});
然而,我想把我的Javascript移动到一个单独的页面,并从我的PHP页面调用脚本:
<script src="add_user.js" type="text/javascript"></script>
如果我这样做,我不能更长的用户<? echo $user_id; ?>
,那么将我的PHP变量传递给Javascript/jQuery函数的最佳方式是什么?
<script>
var user_id = <?php echo $user_id; ?>
</script>
<script src="add_user.js" type="text/javascript"></script>
现在您可以在您的add_user.js
文件中使用user_id
。另外,我会建议against using PHP short tags。
缺少*某些服务器上的功能*不是不使用它的原因。许多主机仍然运行PHP 5.1,我们是否应该避免使用5.3特性? – 2011-12-23 16:30:28
短标签取决于正确的配置设置,如果您打算将项目部署到不同的服务器,您应该习惯于使用标准的 2011-12-23 16:36:31
您可以配置您的网络服务器,将.js文件视为PHP脚本,这样可以让您从.js文件中执行您的PHP代码。
但是,如果这是不能接受的,你总是可以这样做:
<script type="text/javascript">var user_id = <?php echo json_encode($user_id) ?>;</script>
<script type="text/javascript" src="add_user.js"></script>
在你的PHP脚本的级别上定义的变量,然后包括外部的.js如常。
如果$ user_id始终是数字,那么json_encode()位是过度杀毒,但我已经养成了使用该动态生成JS代码的习惯。使用json_encode保证你插入一个语法正确的JS代码片段。
只需在另一边开始会话。考虑到JS数据可能被破坏,甚至故意并可能被利用(安全),它也更安全。
开始会话后 - 在那里读取数值。
当然,这对同一虚拟主机上的脚本有效。
您仍然能够引用您的varible在外部JS文件
<script type="text/javascript">
var yourvar = <? echo $user_id; ?>;
</script>
<script src="add_user.js" type="text/javascript"></script>
你可以有JavaScript文件由PHP处理。例如,命名文件'add_user.php',然后执行''。 – 2011-12-23 16:12:26
我想你应该在你的php生成的页面中使用一些全局JavaScript变量,或者至少使用隐藏字段来保存session_id值(然后从javascript访问它) – andreapier 2011-12-23 16:14:02
为什么不使用href属性呢?将完整的网址添加到链接,并使用它。 – Ignas 2011-12-23 16:14:07