#php
#php
Вопрос:
У меня есть 3 флажка в моем приложении.И каждому флажку соответствует текстовое поле.Когда выбран один флажок, я хочу ввести значение для соответствующего текстового поля.Я использовал утилиту проверки формы, чтобы справиться с этим. Работает нормально. Но мой вопрос в том, что когда я отправляю свою форму с установленным флажком, она становится снятой после отправки.
Комментарии:
1. 0 из 9 принимает, действительно это не способ вызвать чей-либо интерес.
Ответ №1:
Если вы хотите повторно отобразить ту же форму со значениями, возможно, вы уже используете echo set_value('field_name')
атрибут value в каждом поле ввода:
<label for="field">Field</label>
<input id="field" name="field" value="<?php echo set_value('field'); ?>" class="text" type="text">
С флажками вы делаете это с помощью set_checkbox
функции таким образом:
<ul>
<li>
<input id="consult-option1" name="consult[]" value="option 1" <?php echo set_checkbox('consult[]', 'option 1') ?> class="checkbox" type="checkbox">
<label for="consult-option1">Option 1</label>
</li>
<li>
<input id="consult-option2" name="consult[]" value="option 2" <?php echo set_checkbox('consult[]', 'option 2') ?> class="checkbox" type="checkbox">
<label for="consult-option2">Option 2</label>
</li>
<li>
<input id="consult-option3" name="consult[]" value="option 3" <?php echo set_checkbox('consult[]', 'option 3') ?> class="checkbox" type="checkbox">
<label for="consult-option3">Option 3</label>
</li>
</ul>
Обратите внимание на echo set_checkbox('consult[]', 'option 1')
внутри ввода. Это повторяет атрибут checked="checked"
, если он должен быть установлен. Функция находится внутри помощника формы и получает два параметра: имя флажка и значение флажка, как определено в его атрибуте value.
Пожалуйста, дайте мне знать, если это понятно, или я должен отредактировать и написать более четко. Пока
Ответ №2:
После нескольких часов безуспешных поисков ответа. Я придумал это. Вид:
<br/>
<input type="checkbox" id="active" <?=$is_active;?> name="active">
<br/>controller:<br/>
$this->form_validation->set_rules('active', lang('active'), 'required');
<br/>if ($this->input->post('active') == 'on'){ // active input field is checked.
<br/>$data['is_active'] = 'checked';
<br/>}else{ // active input field is unchecked.
<br/>$data['is_active'] = '';
<br/>}
<br/>
В моем случае мне приходилось проверять правила только тогда, когда было выбрано другое поле, поэтому я также использовал это (но это просто необязательно)
if ($this->input->post('item_type') == '1') {
$this->form_validation->set_rules('auction_time', lang('Auction time'), 'trim|required');
$this->form_validation->set_rules('active', lang('active'), 'required');
}