Перезаполните переключатели при неудачной проверке - PullRequest
4 голосов
/ 09 января 2010

У меня есть форма, которая извлекает данные из базы данных. Код работает нормально, если это поле ввода, но я не могу получить последние данные $ _POST для переключателей.

Это работает для ввода текстового поля. Я получаю значения по умолчанию, извлеченные из БД при первой загрузке, и я могу получить новый ввод (если есть) от пользователя, изменяющего поле ввода при неудачной проверке.

<?php echo form_input('email',set_value('email', $email)); ?>

Вот код одной из моих радиокнопок. Это работает, когда я извлекаю данные из БД, но если форма обновляется из-за неудачной проверки, я не уверен, как мне показать, что выбрал пользователь.

<input type="radio" name="gender" value="male" <?php if($gender == "male") echo "checked";  ?> />Male

Я играл с set_radio, но столкнулся с той же проблемой. Это работает при начальной загрузке, но как насчет неудачной проверки? Я попытался добавить set_radio во второй параметр, но это тоже не сработало.

if($gender == "male") {
    echo form_radio('gender', 'male',TRUE)
} else {
   echo form_radio('gender', 'male')
}

Ответы [ 4 ]

15 голосов
/ 02 февраля 2011

Кажется, есть ошибка. Если вы не включите правило проверки для переключателей, они не заполняются при обратной передаче.

Вы можете включить подобное правило.

 $this->form_validation->set_rules('active', 'active', 'required');

если бы у вас было ..

<div id="active-container">

   <input type="radio" name="active" id="lesson-active" value="1" <?php echo set_radio('active', '1', TRUE); ?> />
   <label for="lesson-active">Active</label>

   <input type="radio" name="active" id="lesson-deactivated" value="2" <?php echo set_radio('active', '2'); ?> />
   <label for="lesson-deactivated">Deactivated</label>

</div>
3 голосов
/ 09 января 2010

Из Руководства пользователя CodeIgniter.

<input type="radio" name="myradio" value="1" <?php echo set_radio('myradio', '1', TRUE); ?> />

<input type="radio" name="myradio" value="2" <?php echo set_radio('myradio', '2'); ?> />

Первый параметр - это имя радиоприемника, второй - текущее значение радиоприемника, а третий - параметр по умолчанию, если нет данных для заполнения поля.

2 голосов
/ 14 мая 2015

Посмотрев несколько примеров кода, я заметил, что функция set_radio ДОЛЖНА БЫТЬ в параметре value функции form_radio. Поскольку вы не можете иметь эхо внутри эха, я создал «хак», поместив пустую строку в параметр value и затем добавив к нему функцию set_radio. Вот мой пример:

echo form_radio('gender', 'M', ''.set_radio('gender', 'M'), $js)."Male ";
echo form_radio('gender', 'F', ''.set_radio('gender', 'F'), $js)."Female ";
0 голосов
/ 19 января 2010

Похоже, я смог использовать тот же код, что и для текстового поля.

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