1

ビューにセッションデータを設定したいのですが、条件付きで、ビューのjavascript部分に

$('#demo').click(function(){
$this->session->set_userdata('sample',10);
});

ただし、ボタンをクリックせずにページを更新すると、セッションデータ「サンプル」が設定されます。ボタンをクリックした後にのみこのセッションデータセットを取得する方法はありますか?

ありがとうございました

4

2 に答える 2

6

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

于 2012-08-14T08:39:01.713 に答える
2

セッションの変数が設定されていない場合、次のメソッドは FALSE を返します。

$this->session->userdata('sample')

それ以外の場合は、適切な値を返します。

于 2012-08-14T09:23:10.887 に答える