CI: переменные сеанса и json_encode - PullRequest
0 голосов
/ 29 июля 2011

У меня есть значения, которые я добавил в свой сеанс и которые я хотел бы передать в запрос следующим образом:

$eventTypeID = $this->session->userdata('eventtypeID');
$this->session->unset_userdata('eventtypeID');
$venueCityID = $this->session->userdata('venuecityID');
$this->session->unset_userdata('venuecityID');
echo json_encode($this->event_model->getSearchEvents($eventTypeID, $venueCityID));

Проблема, с которой я сталкиваюсь, заключается в последней строке (echo json_encode...) не будет работать, когда предыдущие переменные извлечены / не установлены.Если я закомментирую переменные и просто запущу:

echo json_encode($this->event_model->getSearchEventsAll());

Тогда все работает хорошо.Может кто-нибудь сказать, почему json_encode не очень хорошо работает с сессиями и как я могу заставить это работать?Спасибо!

EDITED

После большого разочарования теперь кажется, что проблема может быть не в сеансе, а в выводе моего запроса:

$this->db->_compile_select();     
$q = $this->db->get();
echo $this->db->last_query();  

Все раньше работало нормально, и я смог «перехватить» запрос, чтобы увидеть, что вызывается, но теперь при использовании _compile & last_query ничего не происходит ????

1 Ответ

0 голосов
/ 29 июля 2011

Запустите json_last_error(), чтобы увидеть, не возникли ли ошибки при кодировании данных. См. Пример на странице документации для правильного использования:

http://www.php.net/manual/en/function.json-last-error.php

Мы не уверены, что $this->event_model->getSearchEvents($eventTypeID, $venueCityID) возвращает VS $this->event_model->getSearchEvents(), но проблем с использованием переменных определенно не должно быть.

Как всегда, попробуйте var_dump() на выходе (попробуйте перед декодированием) и посмотрите, в чем разница между двумя возвращаемыми значениями функции. Возможно, вы даже столкнулись с ошибкой в ​​самой функции, которая останавливает выполнение - убедитесь, что error_reporting() работает на полную мощность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...