Intereting Posts
Как сделать переадресацию без кэширования 301? чрезмерное urlencoding функции http_build_query Как заменить черный фон белым при изменении размера / конвертации изображений PNG с прозрачным фоном в JPEG. Согласование свободно сформированных URL-адресов с использованием регулярных выражений и php? Использование переменных PHP внутри HTML-тегов? Ошибка PhpMyAdmin с конфигурационным файлом Как создать zip-файл с 256-битным шифрованием, используя php как сгенерировать файл doc с помощью php Только в Firefox "Ошибка загрузки для <script> с исходным кодом" Массивы из нескольких форм загрузки, Загрузка изображений, а затем вставка в базу данных (PHP, MySQL) Получить специальный тег со значением атрибута из XML Auto Increment пропускает числа? Конфигурация SSL для конкретной среды в файле Laravel .env MySQLi подготовил оператор в цикле while Как подпись PHAR предотвращает несанкционированное использование файлов?

Репопуляция флажков в Codeigniter после неудачной проверки формы

У меня возникла проблема с заполнением набора флажков после неудачной проверки формы возвращает пользователя обратно в ту же форму. Выпадающие меню и текстовые входы могут быть засекречены, но не флажки!

Вот фрагмент кода для флажков:

<td> <?php echo form_checkbox('ambience[]', 'casual', set_checkbox('ambience[]', 'casual')); ?> Casual <br /> <?php echo form_checkbox('ambience[]', 'romantic', set_checkbox('ambience[]', 'romantic')); ?> Romantic <br /> <?php echo form_checkbox('ambience[]', 'outdoor', set_checkbox('ambience[]')); ?> Outdoor / Alfresco <br /> <?php echo form_checkbox('ambience[]', 'trendy', set_checkbox('ambience[]')); ?> Hip & Trendy <br /> <?php echo form_checkbox('ambience[]', 'vibrant', set_checkbox('ambience[]')); ?> Vibrant <br /> <?php echo form_checkbox('ambience[]', 'up_scale', set_checkbox('ambience[]')); ?> Upscale <br /> </td> 

Фрагмент кода для ввода текста, который успешно заселен:

 <?php echo form_dropdown('price_range', $options, set_value('price_range')); ?> 

Есть идеи? Я действительно смущен, почему set_checkbox не работает так, как рекламируется.

Вы set_checkbox . Когда вы используете массив, подобный «ambience []» в form_checkbox, вы не хотите включать квадратные скобки ([]) в свой вызов set_checkbox . Другая проблема заключается в том, что для set_checkbox требуется второй параметр, который вы включили только в первые 2 флажка.

Set_checkbox всегда должен выглядеть так:

 set_checkbox('ambience', 'value'); 

Где «значение» является вторым параметром вызова form_checkbox . Как это:

 form_checkbox('ambience[]', 'value', set_checkbox('ambience', 'value')); 

Для правильной работы set_checkbox на этом элементе необходимо использовать правильное правило проверки. Я столкнулся с этой проблемой и не смог получить значение для показа на повторной отправке, пока не включил:

 $this->form_validation->set_rules('checkbox_name', 'checkbox_title', 'trim'); 

Тогда все сработало отлично.

Я действительно обнаружил, что он работает только если вы используете вот так:

 form_checkbox('ambience[]', 'value', set_checkbox('ambience[]', 'value')); 

Вам нужны квадратные квадратные скобки для названия, чтобы он работал правильно.

Вот рабочий пример. Вы должны включать имя массива с помощью скобок [] в каждом из $this->form_validation->set_rules() , form_checkbox() и set_checkbox() .

В контроллере:

  $this->load->library('form_validation'); $this->form_validation->set_rules('set_reminder_days[]', 'Reminder Day', 'trim'); if( $this->form_validation->run() == FALSE ) //Field validation failed. { //form validation errors will show up automatically } else //Validation success. { //This is an array of all checked checkboxes $reminder_days = $this->input->post('set_reminder_days'); } 

В представлении:

  $day_options = array( 'S' => 'Sunday', 'M' => 'Monday', 'T' => 'Tuesday', 'W' => 'Wednesday', 'Th' => 'Thursday', 'F' => 'Friday', 'Sa' => 'Saturday' ); foreach( $day_options as $key => $day_option ) { echo form_checkbox('set_reminder_days[]', $key, set_checkbox('set_reminder_days[]', $key), 'class="form-checkbox"'); } 
 function set_checkbox_array($field, $value) { $arr = isset($_POST[$field]) ? $_POST[$field] : FALSE; return ($arr !== FALSE && is_array($arr) && in_array($value, $arr)) ? 'checked="checked"' : ''; } 

Я понял, что set_checkbox принимает 3 параметра:

  set_checkbox(string $checkboxname, string $value, boolean $isChecked); 

Например :

  echo form_checkbox('mycbx[]', $item['id'], set_checkbox('mycbx[]', $item['id'], false) ); 

или таким образом:

 $checkbox = array( 'name' => 'mycbx[]', 'value' => $item['id'], 'checked' => set_checkbox('mycbx[]', $item['id'], false) ); echo form_checkbox($checkbox); 

Это не используется помощником формы. Я пытаюсь использовать этот код.

 <input type="checkbox" name="tes_display" value="1" <?php echo set_checkbox('tes_display', '1', FALSE); ?> /> 

Я пробовал все решения здесь, никто не работал. Поэтому я собрал все данные, упаковал их в массив, а затем использовал цикл, чтобы проверить, соответствуют ли значения в массиве значение выбранного поля, если это так изменить проверенный атрибут для проверки.

Вот код html:

 <div class="col-sm-10 tags"> <label> <input class="tags" type="checkbox" name="tags[]" value="love" >Love </label> <label> <input class="tags" type="checkbox" name="tags[]" value="God" >God </label> <label> <input class="tags" type="checkbox" name="tags[]" value="Reality" >Reality </label> <label> <input class="tags" type="checkbox" name="tags[]" value="Entrepreneurship">Entrepreneurship </label> </div> 

Вот код javascript в функции

 (function(){ var tag_string = '<?php echo $_post['tags']; ?>', tags = tag_string.split(', '); boxes = document.getElementsByClassName('tags'); for(i = 0; i< boxes.length;i++ ){ if(tags.toString().includes(boxes[i].value)){ boxes[i].checked = "checked"; } } })(); в (function(){ var tag_string = '<?php echo $_post['tags']; ?>', tags = tag_string.split(', '); boxes = document.getElementsByClassName('tags'); for(i = 0; i< boxes.length;i++ ){ if(tags.toString().includes(boxes[i].value)){ boxes[i].checked = "checked"; } } })();