2013-07-29 39 views
0

我是JQuery的新手,所以請和我一起袒露 - 當我的頁面最初加載時,我的會話變量沒有任何價值。當用戶登錄到系統中時,php變量會設置一個值,但onclick函數(在頁面初次加載時生成)沒有該參數的值 - 因此,當用戶單擊該按鈕時,結果頁面沒有會話變量。如何更新一個PHP會話變量的dom值?

我相信問題是,當dom建立在頁面的負載上時,該變量在該點沒有值,但是如何在用戶登錄後重建dom對象以包含變量?或者這僅僅是不可能的?我只需要附加onclick函數來添加最近登錄的用戶的用戶名。

+1

您已爲問題與阿賈克斯,這就是它! –

+1

請問我們能看到一些代碼嗎? – Herbert

+0

如果用戶通過AJAX登錄,您的ajax調用的響應應該包含一些與用戶相關的數據。你能否在成功回調中訪問? –

回答

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> 
0

你將不得不提交一個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']));