如何在dom中更新php会话变量的值?

时间:2013-07-29 16:38:03

标签: php jquery ajax

我是JQuery的新手,所以请光临我 - 当我的页面最初加载时,我的会话变量没有任何价值。当用户登录到系统时,然后使用值设置php变量,但是onclick函数(在页面初始加载时构建)没有该参数的值 - 因此当用户单击按钮时,结果页面没有会话变量。

我认为问题在于,当dom构建在页面的加载上时,变量在该点没有值,但是如何在用户登录后重建dom对象以包含变量?或者这是不可能的?我只需要附加onclick函数来添加最近登录的人的用户ID。

2 个答案:

答案 0 :(得分:2)

PHP在将网站发送给用户之前会生成网站,因此当登录不通过AJAX时,您可以考虑将会话变量直接放在页面代码中,如下所示:

<a class="mybtn" href="#" onclick="javascript:somefunction('<?php echo $_SESSION['myvar'];?>')">CLICK ME</a>

或通过jquery事件:

<script>
 $('.mybtn').click(function(){
  var myvar = '<?php echo $_SESSION['myvar'];?>';
  do_something_with_myvar(myvar);
 });
</script>

如果使用ajax,只需从response中定义变量:

$.post('login.php','login=xxx&pass=yyy',function(res){
   window.myvar = res; // lets say that login function returns that variable
});

然后:

<script>
 $('.mybtn').click(function(){
  do_something_with_myvar(myvar);
 });
</script>

答案 1 :(得分:0)

你必须使用AJAX提交一个POST / GET来触发后端的php脚本,它会根据你的需要更新会话,或者获取会话的值,或者你正在做什么一般。一个例子......

简单的jQuery帖子:

$.post('my_session_info.php', function(data)
{
   $('#my_element_id').val(data.sess_value);
},'json');

PHP方面:

echo json_encode(array("sess_value"=>$_SESSION['my_session_var']));