** ОТВЕТ: Мне нужно было «десериализовать» мои переменные сеанса для последующего использования.Тьфу.
$ eventTypeID = unserialize ($ this-> session-> userdata ('eventtypeID'));
Я понимаю, что это избитая тема, но я новичок в CIЯ прочитал большинство документов, но я должен что-то упустить из виду, когда речь идет о правильной настройке / получении сессий.
Я следил за конфигурациями, найденными в этом посте, и могу подтвердить, что FF хранит cookie: http://codeigniter.com/forums/viewthread/178904/
При настройке моего приложения пользователи выбирают значения из 2 раскрывающихся списков,эти значения затем помещаются в переменные сеанса, и вызывается новое представление.Из нового представления мне нужно иметь возможность доступа к переменным сеанса и передавать их для запроса моей базы данных.В настоящее время, когда я просматриваю запрос, ему не отправляются значения сеанса.
Вся помощь очень важна!Спасибо!
РЕДАКТИРОВАНИЕ НИЖЕ: Кажется, что установка переменных сеанса (массива) не происходит.
Вот мой код для установки:
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();
}
}