0

我正在使用 codeigniter,我正在结合 jquery。我的问题是我有一个带有不同锚标签的菜单。单击锚标记时,iframe src 已更改,但是当我单击菜单项时,我想检查会话是否已登录,以便我可以将页面重定向到注销。

var 将服务器记录为检查的哨兵值。不幸的是,当我在一个新标签中打开注销时离开主布局,然后单击其他菜单项,记录的值仍然为 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");
        });
4

2 回答 2

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");
      });
}); 

在代码点火器中

function get_seesion_detail(){

    $is_logged  = $this->session->userdata('logged_in');
    echo $is_logged;

}
于 2013-01-11T07:13:09.923 回答
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()”不是一个真正的函数,只是给你一个想法。

于 2013-01-11T06:42:30.960 回答