ビューにセッションデータを設定したいのですが、条件付きで、ビューの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')
それ以外の場合は、適切な値を返します。