CodeIgniter кэширует переменную представления, даже если я явно установил ее снова - PullRequest
0 голосов
/ 17 мая 2011

Я использую PHP-фреймворк CodeIgniter.У меня есть простая форма, которая имеет скрытую переменную $ editcode, которая отправляется при отправке формы.Форма отправляет данные в функцию обработки формы, которая затем снова отображает представление вместе с формой, однако с изменением переменной $ editcode $ на новое значение.

Проблема заключается в том, что независимо от того, что я делаю, значение$ editcode остается тем же, что и исходное значение, даже после отправки формы и перерисовки представления с новой переменной $ editcode.

Извлечь из моего представления, показывающего, как $ editcode включается и отправляется.

echo form_open('/add', $formattributes);
echo form_hidden('editcode', set_value('editcode', $editcode));
echo form_submit('submit','Submit!','id="submit"');

Код функции add () ($ refreshed_editcode положительно отличается от сгенерированного исходного $ editcode).

...
$data['editcode'] = $refreshed_editcode;
$this->load->view('includes/template', $data);

Когда представление перерисовывается функцией add (),$ editcode value должно быть $ refreshed_editcode, но вместо этого оно все еще является исходным значением.

Я знаю, что CodeIgniter выполняет некоторое кэширование переменных для вложенных представлений, однако в этом случае я явно пересылаю новые значениядля переменной $ editcode.Что дает?

1 Ответ

1 голос
/ 17 мая 2011

Попробуйте избавиться от вызова set_value. Поскольку поле формы скрыто, оно в любом случае не должно принести вам много пользы, и я подозреваю, что именно здесь происходит «кэширование» (если я не ошибаюсь, эта функция является частью файла form_helpers и она на самом деле предназначена кэшировать, чтобы помочь повторно заполнить данные, но прошло уже много времени с тех пор, как я их использовал).

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