У меня очень простая форма голосования.Он содержит одно текстовое поле для идентификатора записи, а затем пять раскрывающихся списков.Единственная проверка выполняется в текстовом поле, но если это не удается, я хочу, чтобы все раскрывающиеся списки сохранили свои значения.
Например, пользователь вводит 12345 в качестве записи, а затем выбирает опцию A из всехпять выпадающих.(Опция B является значением по умолчанию.) Если 12345 не проходит проверку, раскрывающиеся списки все равно следует установить на параметр A, когда отображается ошибка проверки.Этого не происходитЯ использую form_dropdown помощника формы, чтобы создать выпадающие списки.Есть идеи?Как видите, я попытался использовать set_value в раскрывающемся списке с именем q1, но это не работает.Сама проверка работает.
Вот код для формы:
<?php
$hidden = array('dot_judge_id' => $this->session->userdata('dot_judge_id'));
echo form_open('vote/create');
$entry_code_data = array(
'name' => 'entry_code',
'id' => 'entry_code',
'value' => set_value('entry_code')
);
echo form_hidden($hidden);
$score_options = array('1'=>'1 (lowest)', '2'=>'2','3'=>'3', '4'=>'4','5'=>'5 (highest)');
?>
<p><label for="entry_code">Entry code: </label><?php echo form_input($entry_code_data); ?></p>
<p><label for="q1">Question 1: </label><?php echo form_dropdown('q1', $score_options, set_value('q1')); ?></p>
<p><label for="q2">Question 2: </label><?php echo form_dropdown('q2', $score_options, ''); ?></p>
<p><label for="q3">Question 3: </label><?php echo form_dropdown('q3', $score_options, ''); ?></p>
<p><label for="q4">Question 4: </label><?php echo form_dropdown('q4', $score_options, ''); ?></p>
<p><label for="q5">Question 5: </label><?php echo form_dropdown('q5', $score_options, ''); ?></p>
<p><?php echo form_submit('submit', 'Submit vote'); ?></p>
<?php echo form_close(); ?>
<?php echo validation_errors('<p class="error">', '</p>');?>
У меня есть кто-то на форуме CodeIgniter, который сказал мне, чтобы использовать set_select, но я не думаю, что яможно использовать set_select, потому что я не записываю отдельные значения поля выбора, и при этом я не пытаюсь предоставить жестко заданное значение по умолчанию.Мне нужно сбросить выпадающие значения до значений, выбранных пользователем до запуска проверки формы.Я использую функцию form_dropdown, так как я могу получить фактическое выбранное значение для передачи во второй параметр set_select?Согласно документации set_select,
Первый параметр должен содержать название меню выбора, второй параметр должен содержать значение каждого элемента
Был также комментарий к этому сообщению , в котором говорилось, что используется set_value - echo form_dropdown('events', $options, set_value('events'), $firstItem);
.Комментарий получил три голоса, поэтому я предполагаю, что он работает для некоторых людей, но ничего не делает для меня.Этот вопрос был годик;возможно, это работало в более старой версии CI, но не в самой новой.В любом случае, ДОЛЖЕН ли быть способ иметь «липкие» значения раскрывающегося списка при создании раскрывающихся списков с помощью form_dropdown, не так ли?Я не могу себе представить, что мне пришлось бы проделать длинный путь и создать выпадающий список, просматривая массив значений и выводя каждую строку параметров отдельно;такой вид побеждает цель использования чего-то вроде CI.