我是JQuery的新手,所以请光临我 - 当我的页面最初加载时,我的会话变量没有任何价值。当用户登录到系统时,然后使用值设置php变量,但是onclick函数(在页面初始加载时构建)没有该参数的值 - 因此当用户单击按钮时,结果页面没有会话变量。
我认为问题在于,当dom构建在页面的加载上时,变量在该点没有值,但是如何在用户登录后重建dom对象以包含变量?或者这是不可能的?我只需要附加onclick函数来添加最近登录的人的用户ID。
答案 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']));