Флажок и поисковый запрос в Codeigniter - PullRequest
0 голосов
/ 17 мая 2011

Моя страница написана на PHP / codeigniter, и у меня есть форма с несколькими флажками.Когда я выбираю несколько флажков и отправляю форму, я передаю значения флажков контроллеру, который затем решает, установлен ли флажок, внедряет все значения отмеченных флажков в массив и передает их в URL с помощью uri-> assoc_to_uri ($массив).Вот как я кодировал свои фильтры для поисковой системы (лучше?).Теперь, когда я снова отображаю форму с флажками, я хочу, чтобы флажки, предварительно проверенные ранее, были проверены снова.Как я могу это сделать?

Моя первоначальная идея - сделать uri_> uri_to_assoc (#), найти значение соответствующего ключа (т.е. 1.2.3), затем взорваться в массив $ arr и что-то вродеследующий код:

<input type="checkbox" name="price_range_4" value="<?php if($arr[4] != '') echo 'selected'; ?>">

Есть ли более быстрый / лучший способ?

Ответы [ 2 ]

2 голосов
/ 17 мая 2011

Почему бы не использовать класс сеанса и передать массив set_flashdata (), а затем извлечь его на странице результатов поиска, чтобы установить флажки?

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

Помимо ответа Даррена у вас есть еще одна проблема с HTML:

<input type="checkbox" name="price_range_4" value="<?php if($arr[4] != '') echo 'selected'; ?>">

Вы хотите изменить не value, а атрибут checked. Примерно так:

<input type="checkbox" name="price_range_4" value="my_value"<?php if ($should_be_checked) echo ' checked="checked"'; ?> />

Если вы используете Помощник по формам , вы можете использовать функцию form_checkbox(), чтобы сделать это немного чище:

Пример:

echo form_checkbox('price_range_4', 'my_value', $should_be_checked);

Конечно, $should_be_checked будет любым способом, который вы решите определить, с данными сеанса, данными $ _POST или другим способом.

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