我想知道是否有可能在表单验证失败后重新填充动态dropdown
(尤其是option
的{{1}}),而动态验证是由另一个select
在dropdown
。
我的jQuery在获取数据时填充on change event
的动态option
以及select
时都工作良好,我的唯一问题是表单提交且验证失败时,因此基本上,动态server-side
select
将会重置。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
您在这里有2个选择:
1)您手动使用CI设置2x选择字段,然后重新填充/设置它们。您将根据错误的POST
值构造这些值。
假定列表A填充列表B,而列表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 :(得分:0)
是的,这是可能的, 这个例子适用于 Codeigniter 4,但我很确定它也适用于 Codeigniter 3。在这里我想用 Selected2 做一个多下拉字段
<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