【问题标题】:Autocomplete from selected data in combobox : jquery.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search for 'length' in从组合框中的选定数据自动完成:jquery.min.js:2 Uncaught TypeError: Cannot use 'in' operator to search 'length' in
【发布时间】:2020-09-05 13:24:29
【问题描述】:

我正在尝试为我的表单自动完成,数据来自选定的组合框。

这是我的控制器:

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>

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

未捕获的类型错误:无法使用 'in' 运算符在 {"hasil":[{"kode_list":"LPT20060001","tanggal":"2020-06-08","status_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":"切割完成"}]}

我已经尝试提醒数据并显示: {"hasil":[{"kode_list":"LPT20060001","tanggal":"2020-06-08","status_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":"切割完成"}]}

我该如何解决?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您可能需要更改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 + '">');
            });
        });
    }
    

    【讨论】:

    猜你喜欢
    • 2016-10-11
    • 2021-02-21
    • 2015-09-17
    • 2021-10-06
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2020-08-17
    • 2018-01-24
    相关资源
    最近更新 更多