0

私は codeigniter を使用しており、jquery を組み合わせています。私の問題は、さまざまなアンカー タグを持つメニューがあることです。アンカータグをクリックすると iframe src が変更されますが、メニュー項目をクリックすると、ページをログアウトにリダイレクトできるように、ログインしているかどうかをセッションで確認したいと思います。

var はサーバーをチェックのセンチネル値として記録します。残念ながら、マスターレイアウトをそのままにして新しいタグでログアウトを開いてから他のメニュー項目をクリックすると、logged の値は 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 に答える