我想在我的视图中设置我的会话数据,但有条件地,所以在我视图的 javascript 部分我有
$('#demo').click(function(){
$this->session->set_userdata('sample',10);
});
然而,每当我刷新我的页面,而不点击按钮,会话数据,“样本”被设置,有没有办法只有在我点击按钮后才能获得这个会话数据集?
谢谢
我想在我的视图中设置我的会话数据,但有条件地,所以在我视图的 javascript 部分我有
$('#demo').click(function(){
$this->session->set_userdata('sample',10);
});
然而,每当我刷新我的页面,而不点击按钮,会话数据,“样本”被设置,有没有办法只有在我点击按钮后才能获得这个会话数据集?
谢谢
您正在混合使用 Javascript 和 PHP(客户端和服务器端)。您可以像这样使用 Ajax 来做到这一点:
$('#demo').click(function(){
$.ajax({
type: "POST",
url: "mycontroller/sessions"
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
在您的Mycontroller.php
文件中,您应该创建一个名为“会话”的函数:
function sessions(){
$this->session->set_userdata('sample',10);
}
如果您需要将信息从 Javascript 传递到 PHP:
var dummy = 10;
$('#demo').click(function(){
$.ajax({
type: "POST",
url: "mycontroller/sessions",
data: { value: dummy }
}).done(function( msg ) {
alert( "Data Saved: " + msg );
});
});
function sessions($value){
$this->session->set_userdata('sample',$value);
}
有关 JQuery 中的 Ajax 的更多信息http://api.jquery.com/jQuery.ajax/
编辑:
要检查 CodeIgniter 中是否存在会话变量:
function sessions(){
$sId = $this->session->userdata('session_id');
if(isset($sId)){
// session_id exist
}
}
“检索会话数据”部分http://codeigniter.com/user_guide/libraries/sessions.html
如果会话中的变量未设置,则以下方法返回 FALSE
$this->session->userdata('sample')
否则返回适当的值。