我是JQuery的新手,所以請和我一起袒露 - 當我的頁面最初加載時,我的會話變量沒有任何價值。當用戶登錄到系統中時,php變量會設置一個值,但onclick函數(在頁面初次加載時生成)沒有該參數的值 - 因此,當用戶單擊該按鈕時,結果頁面沒有會話變量。如何更新一個PHP會話變量的dom值?
我相信問題是,當dom建立在頁面的負載上時,該變量在該點沒有值,但是如何在用戶登錄後重建dom對象以包含變量?或者這僅僅是不可能的?我只需要附加onclick函數來添加最近登錄的用戶的用戶名。
我是JQuery的新手,所以請和我一起袒露 - 當我的頁面最初加載時,我的會話變量沒有任何價值。當用戶登錄到系統中時,php變量會設置一個值,但onclick函數(在頁面初次加載時生成)沒有該參數的值 - 因此,當用戶單擊該按鈕時,結果頁面沒有會話變量。如何更新一個PHP會話變量的dom值?
我相信問題是,當dom建立在頁面的負載上時,該變量在該點沒有值,但是如何在用戶登錄後重建dom對象以包含變量?或者這僅僅是不可能的?我只需要附加onclick函數來添加最近登錄的用戶的用戶名。
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>
你將不得不提交一個POST/GET使用AJAX來觸發後端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']));
您已爲問題與阿賈克斯,這就是它! –
請問我們能看到一些代碼嗎? – Herbert
如果用戶通過AJAX登錄,您的ajax調用的響應應該包含一些與用戶相關的數據。你能否在成功回調中訪問? –