**回答:セッション変数を使用するためにセッション変数を「直列化解除」する必要がありました。ああ。Codeigniterセッション値が持続しない
$ eventTypeID = unserialize($ this-> session-> userdata( 'eventtypeID'));
私は、これはbelaboredトピックで実現するが、CIに新しいもの、私は、ドキュメントのほとんどを通して読んだが、それは正しくセッションを取得/設定するために来るとき、私は何かを見下ろすする必要があります。
私はこの記事で見つけた構成を踏襲してきたし、そのFFはクッキーを格納されていることを確認することができます:2つのドロップダウンから値を選択する私のアプリが設定されてhttp://codeigniter.com/forums/viewthread/178904/
方法、ユーザーは、これらの値は、その後に入れています新しいビューが呼び出されます。新しいビューの中から私はセッション変数にアクセスし、それらを渡して私のdbに問い合わせることができる必要があります。現在のところ、クエリを表示すると、セッション値は送信されません。
すべてのサポートをよろしくお願いします。ありがとう!
EDITED BELLOW:セッション変数(配列)の設定が行われていないようです。
ここで設定するための私のコードです:
public function goSearch(){
if(!empty($_POST)) {
$this->load->library('session');
$searchData = array(
'eventtypeID' => serialize($this->input->post('pEventType')),
'venuecityID' => serialize($this->input->post('pVenueCity'))
);
$this->session->set_userdata($searchData); /*ERROR: Nothing is being set. I've done print_r on $searchData, which returns values, but if I do:
$test = $this->session->set_userdata($searchData);
Print_r($test);
Nothing is returned */
$this->_displayPublicPage('search', NULL);
}
}
ここでは、クエリに渡すために取得するための私の機能です:
public function readEvents(){
$eventTypeID = $this->session->userdata(‘eventtypeID’);
$venueCityID = $this->session->userdata(‘venuecityID’);
echo json_encode($this->event_model->getSearchEvents($eventTypeID, $venueCityID));
}
は、ここに私のモデルでは、私のクエリです:
public function getSearchEvents($eventTypeID, $venueCityID){
$eventTypeID = intval($eventTypeID);
$venueCityID = intval($venueCityID);
$this->db->select('*');
$this->db->where('event_status =', 'A');
$this->db->where('eventtype.eventtype_id =', $eventTypeID);
$this->db->where('city.city_id =', $venueCityID);
$this->db->join('eventtype', 'event.fk_eventtype_id = eventtype.eventtype_id');
$this->db->join('venue', 'event.fk_venue_id = venue.venue_id');
$this->db->join('city', 'venue.fk_city_id = city.city_id');
$this->db->join('tickets', 'event.event_id = tickets.fk_event_id');
$this->db->from('event');
$this->db->_compile_select();
$q = $this->db->get();
echo $this->db->last_query();
if($q->num_rows() > 0) {
return $q->result();
} else {
return array();
}
}
セッションクラスを読み込みましたか? –
はい。オートロードで – user464180