Php 会话变量在我的脚本中不可访问
我有两个Php 会话变量在我的脚本中不可访问,php,javascript,jquery,Php,Javascript,Jquery,我有两个$\u SESSION变量无法在我的页面的任何脚本中访问,但当我使用echo显示它们的值时,它们肯定存在于同一页面的PHP代码中 我可以用下面的代码在jQuery中显示我想要的每个经典PHP变量,但当它们是$\u SESSION变量时,这是不可能的: <?php if( isset($_SESSION['id']) ){ echo $_SESSION['id']; // it displays the value } ?> <script type="t
$\u SESSION
变量无法在我的页面的任何脚本中访问,但当我使用echo
显示它们的值时,它们肯定存在于同一页面的PHP代码中
我可以用下面的代码在jQuery中显示我想要的每个经典PHP变量,但当它们是$\u SESSION
变量时,这是不可能的:
<?php if( isset($_SESSION['id']) ){
echo $_SESSION['id']; // it displays the value
} ?>
<script type="text/javascript">
$(document).ready(function() {
$("#some_button").click(function(){
var a = <?php echo $_SESSION['id']; ?>;
alert(a);
});
});
</script>
$(文档).ready(函数(){
$(“#某些#按钮”)。单击(函数(){
变量a=;
警报(a);
});
});
老实说,我不明白为什么…如果您使用的是PHP 5.2.0或更高版本,请更改以下内容:
var a = <?php echo $_SESSION['id']; ?>;
var a=;
为此:
var a = <?php echo json_encode($_SESSION['id']); ?>
var a=
这将在结果周围添加引号(如果需要),并根据需要为JavaScript转义字符
如果要使用PHP 5.2.0之前的版本,可以执行以下操作:
var a = '<?php echo $_SESSION['id']; ?>'
var a=''
理想情况下,除非您知道
$\u SESSION['id']
将只包含安全字符,否则最好使用regexp和/或转义/替换函数json_encode()
已经准备好了这些东西,所以它更可取。我不知道示例是否在同一页中,但我怀疑您缺少了session_start()
,因此如果是字符串,就不能使用session变量:
var a= "<?php echo $_SESSION['id']; ?>";
var a=”“;
它对我有效:
准备好并测试下面的代码,它与您的代码非常相似,但我认为您忘记调用jQueryAPI了
<?php>
session_start();
$_SESSION['id'] = 1;
if ( isset($_SESSION['id']) )
{
echo $_SESSION['id'];
echo json_encode($_SESSION['id']);
}
?>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$("#some_button").click(function(){
var a = "Result: "+ <?php echo json_encode($_SESSION['id']); ?>;
//var a="<?php echo $_SESSION['id']; ?>";
alert(a);
});
});
</script>
<form method="post" name="form" action="#">
<input type="submit" id="some_button" value="Clique" />
</form>
$(文档).ready(函数()
{
$(“#某些#按钮”)。单击(函数(){
var a=“结果:”+;
//var a=“”;
警报(a);
});
});
可能您只是缺少了一些引号?单击处理程序的“查看源代码”作为生成的javascript显示了什么?会话确实启动了->注释“//它显示了值”我想问题出在JS中。请提供完整的代码。但他在这里说--->echo$_SESSION['id'];/它显示值。@B4NZ41我说‘我不知道示例是否在同一页中……’:)