проблема с флажком в codeigniter

#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');
}