根据组合框中选定的数据自动完成:jquery.min.js:

我试图为我的表单制作自动完成,数据来自选定的组合框。


这是我的控制器:


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;

               });

              }

            })

          });

        </script>

我在向每个表单显示每个数据时遇到问题,使用此代码会在控制台中显示错误,如下所示:

未捕获的类型错误:无法使用“in”运算符来搜索“长度”; in {“hasil”:[{“kode_list”:“LPT20060001”,“tanggal”:“2020-06-08”,“status_order”:“完整订单”,“买家”:“ ;IK001,Ik Collection”,“nama_barang”:“IK05900,Renata 衬衫”,“jenis_kain”:“Mosscreep”,“warna”:“IK05910,灰色”,“件”:“63” ;,“tanggal_input”:“2020-06-18”,“用户”:“Dena”,“keterangan”:“切割完成”}]}

我已经尝试提醒数据,它显示: {“hasil”:[{“kode_list”:“LPT20060001”,“tanggal”:“2020-06-08”,“status_order”:“完整订单”,“买家”:“ IK001,Ik Collection”,“nama_barang”:“IK05900,Renata 衬衫”,“jenis_kain”:“Mosscreep”,“warna”:“IK05910,灰色”,“件”:“63” ,“tanggal_input”:“2020-06-18”,“用户”:“Dena”,“keterangan”:“切割完成”}]}

我该如何修复它?


撒科打诨
浏览 45回答 1
1回答

牛魔王的故事

您可能需要更改 data 的变量类型才能循环遍历它。您可以通过console.log(typeof data)检查变量的类型。以下是您的问题的可能解决方案,看看这是否对您有帮助。success:function(data){&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; console.log(typeof data);&nbsp; // should be string&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; data = jQuery.parseJSON(data);&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; console.log(typeof data); // should be object&nbsp; &nbsp;&nbsp; &nbsp; $.each(data['hasil'], function(key, val){&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;$.each(val, function(subkey, subval){&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(subkey);&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(subval);&nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // all values are assigned to the elements with the same id as their keys(as your code suggests)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $('#' + subkey).val('<value="' + subval + '">');&nbsp; &nbsp; &nbsp; &nbsp; });&nbsp; &nbsp; });}
打开App,查看更多内容
随时随地看视频慕课网APP