当我想在Ajax中使用Codeigniter进行依赖下拉时,我遇到了问题。 我想做一个子下拉列表,但是当我创建这样的代码时:
<script type="text/javascript">
$(document).ready(function(){
/*Get the satuan_kerja list */
$.ajax({
type: "GET",
url: "<?php echo site_url('Pendaftaran/get_satker');?>",
data:{id:$(this).val()},
beforeSend :function(){
$('.satuan_kerja').find("option:eq(0)").html("Please wait..");
},
success: function (data) {
/*get response as json */
$('.satuan_kerja').find("option:eq(0)").html("Pilih Satuan Kerja");
var obj=jQuery.parseJSON(data);
$(obj).each(function()
{
var option = $('<option />');
option.attr('value', this.value).text(this.label);
$('.satuan_kerja').append(option);
});
/*ends */
}
});
/*Get the unit_kerja list */
$('.satuan_kerja').change(function(){
$.ajax({
type: "POST",
url: "<?php echo site_url('pendaftaran/get_unit_kerja');?>",
data:{id:$(this).val()},
beforeSend :function(){
$(".unit_kerja option:gt(0)").remove();
$('.unit_kerja').find("option:eq(0)").html("Please wait..");
},
success: function (data) {
/*get response as json */
$('.unit_kerja').find("option:eq(0)").html("Pilih Unit Kerja");
var obj=jQuery.parseJSON(data);
$(obj).each(function()
{
var option = $('<option />');
option.attr('value', this.value).text(this.label);
$('.unit_kerja').append(option);
});
/*ends */
}
});
});
});
</script>
第一个功能是工作,但是当我选择或选择第一个表格或下拉列表时,它必须显示子下拉列表,但子下拉列表的第二个功能不起作用,我得到如下错误:
>Uncaught SyntaxError: `Unexpected token < in JSON at position 1
at JSON.parse (<anonymous>)
at Function.n.parseJSON (jquery.min.js:4)
at Object.success (daftar:365)
at i (jquery.min.js:2)
at Object.fireWith [as resolveWith] (jquery.min.js:2)
at y (jquery.min.js:4)
at XMLHttpRequest.c (jquery.min.js:4)
这是pendaftaran / get_satker和pendaftaran / get_unit_kerja的代码
Public function get_satker()
{
$query=$this->db->get('satuan_kerja');
$result= $query->result();
$data=array();
foreach($result as $r)
{
$data['value']=$r->id_satker;
$data['label']=$r->nama_satuan_kerja;
$json[]=$data;
}
echo json_encode($json);
}
Public function get_unit_kerja()
{
$result=$this->db->where('id_satker',$_POST['id_unit_kerja'])
->get('unit_kerja')
->result();
$data=array();
foreach($result as $r)
{
$data['value']=$r->id_unit_kerja;
$data['label']=$r->nama_unit_kerja;
$json[]=$data;
}
echo json_encode($json);
}