Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用codeigniter表单帮助程序生成条件选择_Php_Codeigniter - Fatal编程技术网

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是所有选择都有相同的名称属性或不同的,如果他们有不同的名称,那么你可以按名称找到他们。我已经编辑了我的答案,请你更新我关于你问题的当前状态@我已经编辑了答案