【发布时间】:2020-01-07 05:09:56
【问题描述】:
我需要先从下拉列表中选择部门,然后需要在另一个下拉列表中加载该特定部门的官员。我在 Codeigniter 中这样做。
查看 (第二个下拉列表,我必须加载官员姓名。我已经加载了部门下拉列表的值,并且在选择部门后,此下拉列表应该获取选择值)
<div class="form-group">
<select name="Officer_InCharge" id="Officer_InCharge" class="form-control input-lg">
<!--<option value="">Select officer</option>-->
</select>
</div>
我的 AJAX
<script>
$(document).change(function(){
$("#Officer_Dept").click(function(){
var Dept = $('#Officer_Dept').val();
if (Dept != '')
{
$.ajax({
url:"<?php echo base_url();?>Crud/fetch_officers",
method:"POST",
data:{Dept:Dept},
//dataType: 'json',
success:function(data)
{
alert(data);
var options = "";
for (var i = 0; i < data.length; i++) {
options += "<option>" + data[i].user_name + "</option>";
}
$("#Officer_InCharge").html(options);
}
})
}
});
});
</script>
AJAX 调用成功,我面临的问题是将 ajax 响应附加到选择下拉的官员。这些值显示在警报中
alert(data);
我的控制器
public function fetch_officers()
{
if ($this->input->post('Dept'))
{
echo $this->Crud_model->fetch_dept_officers($this->input->post('Dept'));
}
}
我的模型
function fetch_dept_officers($Dept)
{
$this->db->where('user_dept',$Dept);
$this->db->order_by('user_name', 'ASC');
$query = $this->db->get('tbl_users');
$output = '<option value="">Select Officer</option>';
foreach($query->result() as $row)
{
$output .= '<option value="'.$row->user_id.'">'.$row->user_name.'</option>';
//$output += "<option value='"+$row->user_id+"'>"+$row->user_name+"</option>";
//$output .= '<option>'.$row->user_name.'</option>';
//formoption += "<option value='"+val+"'>"+val+"</option>";
//
//
}
return $output;
//return $query->result();
}
感谢是否有人可以解决这个问题。提前致谢。
【问题讨论】:
-
您能告诉我,如果您从 ajax 调用返回选项,那么为什么要编写循环来创建选项?
-
检查您的 ajax 响应数据。我认为您的数据形式为字符串类型。将字符串更改为对象。
-
删除alert(data)并检查for循环是否被执行。
-
我确实试过 $('Officer_InCharge').html(data);但是它仍然没有工作@Madhuri PAtel
-
未定义的选项显示在下拉值中...
标签: php jquery ajax codeigniter