我正在使用codeigniter,我正在组合jquery。 我的问题是我有一个带有不同锚标签的菜单。 单击锚标记时,iframe src被更改, 但当我点击菜单项时,我想检查会话是否已登录,以便我可以将我的页面重定向到注销。
将var记录的服务器作为检查的sentinel值。不幸的是,当我在一个新标签中打开注销时,离开主布局,然后单击其他菜单项,记录的值仍为1,表示true和logged_in。我想请求帮助这个方法。
$(document).ready(function(){
$('a').click(function(event) {
var logged = "<?php echo $this->session->userdata('logged_in'); ?>";
alert(logged);
if(logged == 1)
$("#frame").attr("src", $(this).attr("id"));
else
window.location.replace("https://www.facebook.com");
});
答案 0 :(得分:0)
是的,php是超文本预处理器,这意味着服务器在js在您的页面上变为活动状态之前处理数据。因此,一旦“logged”设置为true,它将一直保留到您重新加载页面为止。
您需要使用ajax来使您的脚本正常工作。在这里调用ajax函数调用:
var logged = get_session_via_ajax_function();
alert(logged);
get_session_via_ajax_function(){....your ajax code here...}
“get_session_via_ajax_function()”不是真正的功能,只是为了给你一个想法。
答案 1 :(得分:0)
$(document).ready(function(){
$('a').click(function(event) {
var logged =0;
$.ajax({
type: "post",
url: baseurl+"get_seesion_details",
async:false,
success: function(data, status){
logged = data;
}
});
if(logged == 1)
$("#frame").attr("src", $(this).attr("id"));
else
window.location.replace("https://www.facebook.com");
});
});
在codeigniter中
function get_seesion_detail(){
$is_logged = $this->session->userdata('logged_in');
echo $is_logged;
}