#codeigniter #html-select
#codeigniter #html-select
Вопрос:
Мне было интересно, возможно ли повторно заполнить динамический dropdown
(в частности, option
из select
) после сбоя проверки формы, который генерируется другим dropdown
at on change event
.
Мой jQuery хорошо работает над динамическим заполнением option
a select
, а также at server-side
при выборке данных, моя единственная проблема заключается в том, когда форма отправлена и проверка завершается неудачей, поэтому в основном динамика select
option/s
сбрасывается.
Кто-нибудь может мне помочь с этой проблемой?
Комментарии:
1. где ваш контроллер, view jquery ajax-код?
2. у моего контроллера, view, а также моего jQuery нет проблем, просто я не знаю, возможно ли повторно заполнить его снова после динамического заполнения, когда проверка формы завершается неудачей. @M.Hemant
Ответ №1:
Здесь у вас есть 2 варианта:
1) Вы вручную устанавливаете 2 поля выбора с помощью CI и повторно заполняете / устанавливаете их. Вы бы создали их на основе POST
значений, которые были неверными.
Предполагая, что список A заполняет список B, который заполняет список C, вы можете не захотеть этого делать. В этом случае вы могли бы определить некоторые скрытые переменные, такие как это:
var field1 = '<?php $_POST['field1']; ?>';
var field2 = '<?php $_POST['field2']; ?>';
var field3 = '<?php $_POST['field3']; ?>';
$(document).ready(function(){
$('#field1').val(field1).trigger('change'); // or whatever on() query event you use
$('#field2').val(field1).trigger('change'); // or whatever on() query event you use
$('#field3').val(field1).trigger('change'); // or whatever on() query event you use
})
Может помочь? Вы бы выполнили триггер, чтобы затем загрузить те списки / вызовы ajax, которые заполняют каждое поле выбора.
Комментарии:
1. Спасибо за ваш ответ, у меня только что появилась идея о вашем ответе, но проблема сейчас в том, что
trigger
технически в моем случае он не срабатывает. @Antony2. Как вы обрабатываете изменения в поле выбора? Когда пользователь изменяет поле выбора, можете ли вы показать нам код, который вы используете для обработки этого?
Ответ №2:
Да, это возможно, этот пример работает с Codeigniter 4, но я совершенно уверен, что он работает также с Codeigniter 3. Здесь я хотел создать несколько выпадающих полей с помощью Select2
<div class="form-group">
<label>Categories</label>
<?php
$parameters = array('class' => 'form-control select2_cat', "multiple" => "multiple");
$options = array();
foreach ($categories as $cat) {
$options[$cat['name']] = $cat['name'];
}
echo form_dropdown(
'categories[]',
$options,
set_value('categories[]') != "" ? set_value('categories[]') : 0,
$parameters
);
?>
</div>
Как видно из кода, я использую set_value() . Я также проверяю, является ли set_value пустой строкой.
Вы могли бы найти больше информации здесь: https://www.py4u.net/discuss/37330