Autocomplete from selected data in combobox : jquery.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in
Autocomplete from selected data in combobox : jquery.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in
我正在尝试为我的表单制作自动完成功能,数据来自选定的组合框。
这是我的控制器:
public function cari(){
$kode_list=$this->request->getVar('list_produksi_toko');
//$kode_list=$_GET['kode_list'];
$cari['hasil'] =$this->produksiModel->mencari($kode_list);
echo json_encode($cari);
}
型号:
public function mencari($keyword)
{
//$query= $this->builder()->getWhere('list_produksi_toko',array('kode_list'=>$id));
$query = $this->groupBy('kode_list')->like('kode_list', $keyword)->findAll();
return $query;
}
在我看来 和 javascript :
<script>
$('#produk').change(function(){
var list_produksi_toko = $(this).val();
$.ajax({
url:"/Produksi/cari",
method: 'post',
data:{list_produksi_toko: list_produksi_toko},
success:function(data){
jQuery.parseJSON(data);
// var ddas = data.buyer
alert (data);
$.each(data, function(key, val){
$('#buyer').val('<value="'+data['buyer']+'">');
// document.getElementById('nama_barang').value=val.nama_barang;
// document.getElementById('jenis_kain').value=val.jenis_kain;
// document.getElementById('warna').value=val.warna;
// document.getElementById('pcs').value=val.pcs;
});
}
})
});
// $.ajax({
// url: '/ProduksiModel/getProduksi',
// data:"produk="+produk ,
// }).success(function (data) {
// var json = data,
// obj = JSON.parse(json);
// $('#buyer').val(obj.nama);
// $('#status_order').val(obj.status_order);
// $('#nama_barang').val(obj.nama_barang);
// $('#jenis_kain').val(obj.jenis_kain);
// $('#warna').val(obj.warna);
// $('#pcs').val(obj.pcs);
// });
// }
</script>
我在向每个表单显示每个数据时遇到问题,此代码在控制台中显示如下错误:
Uncaught TypeError: Cannot use 'in' operator to search for 'length' in {"hasil":[{"kode_list":"LPT20060001","tanggal":"2020-06-08","status_order":"Full order","buyer":"IK001,Ik Collection","nama_barang":"IK05900,Renata Blouse","jenis_kain":"Mosscreep","warna":"IK05910,Grey","pcs":"63","tanggal_input":"2020-06-18","user":"Dena","keterangan":"Cutting Done"}]}
我已经尝试提醒数据,它显示:
{"hasil":[{"kode_list":"LPT20060001","tanggal":"2020-06-08","status_order":"全订单","买家":"IK001 ,Ik Collection","nama_barang":"IK05900,Renata Blouse","jenis_kain":"Mosscreep","warna":"IK05910,Grey","pcs":"63", "tanggal_input":"2020-06-18","user":"Dena","keterangan":"切割完成"}]}
我该如何解决?
您可能需要更改 data
的变量类型以循环遍历它。您可以通过 console.log(typeof data)
检查变量的类型。以下是您问题的可能解决方案,看看是否对您有帮助。
success:function(data){
console.log(typeof data); // should be string
data = jQuery.parseJSON(data);
console.log(typeof data); // should be object
$.each(data['hasil'], function(key, val){
$.each(val, function(subkey, subval){
console.log(subkey);
console.log(subval);
// all values are assigned to the elements with the same id as their keys(as your code suggests)
$('#' + subkey).val('<value="' + subval + '">');
});
});
}
我正在尝试为我的表单制作自动完成功能,数据来自选定的组合框。
这是我的控制器:
public function cari(){
$kode_list=$this->request->getVar('list_produksi_toko');
//$kode_list=$_GET['kode_list'];
$cari['hasil'] =$this->produksiModel->mencari($kode_list);
echo json_encode($cari);
}
型号:
public function mencari($keyword)
{
//$query= $this->builder()->getWhere('list_produksi_toko',array('kode_list'=>$id));
$query = $this->groupBy('kode_list')->like('kode_list', $keyword)->findAll();
return $query;
}
在我看来 和 javascript :
<script>
$('#produk').change(function(){
var list_produksi_toko = $(this).val();
$.ajax({
url:"/Produksi/cari",
method: 'post',
data:{list_produksi_toko: list_produksi_toko},
success:function(data){
jQuery.parseJSON(data);
// var ddas = data.buyer
alert (data);
$.each(data, function(key, val){
$('#buyer').val('<value="'+data['buyer']+'">');
// document.getElementById('nama_barang').value=val.nama_barang;
// document.getElementById('jenis_kain').value=val.jenis_kain;
// document.getElementById('warna').value=val.warna;
// document.getElementById('pcs').value=val.pcs;
});
}
})
});
// $.ajax({
// url: '/ProduksiModel/getProduksi',
// data:"produk="+produk ,
// }).success(function (data) {
// var json = data,
// obj = JSON.parse(json);
// $('#buyer').val(obj.nama);
// $('#status_order').val(obj.status_order);
// $('#nama_barang').val(obj.nama_barang);
// $('#jenis_kain').val(obj.jenis_kain);
// $('#warna').val(obj.warna);
// $('#pcs').val(obj.pcs);
// });
// }
</script>
我在向每个表单显示每个数据时遇到问题,此代码在控制台中显示如下错误:
Uncaught TypeError: Cannot use 'in' operator to search for 'length' in {"hasil":[{"kode_list":"LPT20060001","tanggal":"2020-06-08","status_order":"Full order","buyer":"IK001,Ik Collection","nama_barang":"IK05900,Renata Blouse","jenis_kain":"Mosscreep","warna":"IK05910,Grey","pcs":"63","tanggal_input":"2020-06-18","user":"Dena","keterangan":"Cutting Done"}]}
我已经尝试提醒数据,它显示: {"hasil":[{"kode_list":"LPT20060001","tanggal":"2020-06-08","status_order":"全订单","买家":"IK001 ,Ik Collection","nama_barang":"IK05900,Renata Blouse","jenis_kain":"Mosscreep","warna":"IK05910,Grey","pcs":"63", "tanggal_input":"2020-06-18","user":"Dena","keterangan":"切割完成"}]}
我该如何解决?
您可能需要更改 data
的变量类型以循环遍历它。您可以通过 console.log(typeof data)
检查变量的类型。以下是您问题的可能解决方案,看看是否对您有帮助。
success:function(data){
console.log(typeof data); // should be string
data = jQuery.parseJSON(data);
console.log(typeof data); // should be object
$.each(data['hasil'], function(key, val){
$.each(val, function(subkey, subval){
console.log(subkey);
console.log(subval);
// all values are assigned to the elements with the same id as their keys(as your code suggests)
$('#' + subkey).val('<value="' + subval + '">');
});
});
}