-1

最初加载我的页面时,我的会话变量没有任何值。当用户登录系统时,php 变量会被设置一个值,但是 onclick 函数(在页面初始加载时构建)没有该参数的值 - 因此当用户单击按钮时,结果page 没有 session 变量。

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

4

2 回答 2

2

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

<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,只需从响应中定义变量:

$.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>
于 2013-07-29T16:45:24.317 回答
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']));
于 2013-07-29T16:47:20.237 回答