Php 使用codeigniter表单帮助程序生成条件选择
我试图创建两个下拉列表,条件是第二个列表应根据第一个列表中选择的值显示列表。 第一是城市。 第二个是市区。 这两个列表都是从数据库填充的 这里有一个例子Php 使用codeigniter表单帮助程序生成条件选择,php,codeigniter,Php,Codeigniter,我试图创建两个下拉列表,条件是第二个列表应根据第一个列表中选择的值显示列表。 第一是城市。 第二个是市区。 这两个列表都是从数据库填充的 这里有一个例子 <td>City:</td> <td> <?=form_dropdown('contact_city', $sel_city, set_value('contact_city'), "class='select2'"); ?> </td> <td>District:
<td>City:</td>
<td>
<?=form_dropdown('contact_city', $sel_city, set_value('contact_city'), "class='select2'"); ?>
</td>
<td>District:</td>
<td >
<?=form_dropdown('contact_district', $sel_contact_district, set_value('contact_district'),"class='select2'"); ?>
</td>
更改城市值后,应重新加载$sel_contact_district并更新列表选择
我应该使用哪种方法 Select2支持允许对组件进行编程控制的方法 //var$example=$.js-example-programmative.select2
$('body').on('click', '.select2', function(e) {
//var select_name = $(this).attr("your_select2_name");
$(this).val("your_option").trigger("change");
});
您还可以添加如下选项:
$('.select2').select2('data', {id: 100, a_key: 'Lorem Ipsum'});
第三次编辑:
正如您在问题中提到的,您需要在“选择”下拉列表中选择选项,以依赖于第一个下拉列表中选择的选项。
这是两个选择框,它根据第一个选择框更改选项
$("#select1").change(function() {
if ($(this).data('options') === undefined) {
/*Taking an array of all options-2 and kind of embedding it on the select1*/
$(this).data('options', $('#select2 option').clone());
}
var id = $(this).val();
var options = $(this).data('options').filter('[value=' + id + ']');
$('#select2').html(options);
});
水果
动物
鸟
汽车
香蕉
苹果
橙色
狼
狐
熊
鹰
鹰
BWM
使用ajax,您可以根据第一个下拉列表的值填充第二个下拉列表。看起来是这样的:
$("#cityDropdown").on('change', function(){
$.post('api/listdistrictsfromcity',
{ city_id : $(this).val() },
function(response){
var $district_dropdown = $("#districtsDropdown").empty();
$.each(response, function(i, item){
$district_dropdown.append("<option value='" + item.value + "'>"+ item.text +"</option>");
});
});
});
如果您使用的是ajax,那么就很容易了。您将创建一个函数,该函数将接收一个参数:$city\u id,然后选择名称。您可以从该ID搜索该城市所有地区的数据库。使用键/值对返回它们并填充select。从您的代码中,我注意到您可能正在使用select2。它有一个通过ajax进行填充的功能。哪个事件应该调用您建议的功能?您应该在城市下拉列表的更改事件中填充地区下拉列表。类似这样的内容:谢谢您,Phiter,Ankit。我会尝试分享结果的。我知道你的想法。但是我的表单上有几个select2元素。$。select2.onclick,函数工作,但它为每个select2元素运行。我尝试了$myu元素。onclick,function。。。。它不起作用。我如何区分更改了哪个select或仅处理特定select的事件?谢谢,正如你所说的,你有多个选择2是所有选择都有相同的名称属性或不同的,如果他们有不同的名称,那么你可以按名称找到他们。我已经编辑了我的答案,请你更新我关于你问题的当前状态@我已经编辑了答案