【问题标题】:Passing multiple arrays from PHP to AJAX and JQuery Autocomplete with JSON使用 JSON 将多个数组从 PHP 传递到 AJAX 和 JQuery 自动完成
【发布时间】:2017-11-09 20:00:27
【问题描述】:

现在我正在尝试使用 JSON 将多个数组传递给我的 AJAX 函数,以便它显示在搜索建议中。然而,每当我尝试传递它时,JSON 总是会解析我的数据,这样关键字/搜索词就会出现在 JSON 数组之前,因此解析总是失败。如何删除此关键字? 如果只发送了一个变量,则解析成功,所以我认为问题在于我如何传递数组,但我不知道为什么。我正在使用 Codeigniter。

感谢您的宝贵时间。

HTML:

<input type="text" id="searchterm" name="searchterm">

PHP(控制器):

function search_produkTindakan(){
        if (isset($_GET['searchterm'])) {
            $cari=$this->input->get('searchterm');
        }
        $tindakan = array();
        $nama_jns_barang = array();
        $tindakan = $this->billing_m_pasien->pencariandata_tindakan($cari);
        $nama_jns_barang= $this->billing_m_pasien->pencariandata_produk($cari);
        echo json_encode(array('tindakan'=>$tindakan, 'nama_jns_barang'=>$nama_jns_barang));
    }

PHP(模型):

function pencariandata_tindakan($cari='')
    {
        $query = $this->db->query("SELECT tindakan, kategori FROM daftar_tindakan WHERE tindakan LIKE '%$cari%'  OR kategori LIKE '%$cari%' "  );
        if ($query->num_rows() > 0) {
          $muatData = $query->row();
          $data = array();
          // $data['tindakan'] = $muatData->tindakan;
          $query = $query->result_array();
          if( is_array($query) && count ($query) > 0 ){ 
            $n = 0;
            foreach ($query as $row ) 
            {
              $data['tindakan'.'['.$n.']'] = $row['tindakan'];
              $n++;
            }
          }
          asort($data);
          return $data;
        }
        else {
          echo $cari;
          // return false;
        }
      }

Javascript:

var caridata=$("#searchterm").val();
$("#searchterm").autocomplete({ 
source: function( request, response ) { 
  $.ajax({
    url:"<?php echo site_url('bla');?>",
    type:"GET",
    data:"searchterm="+searchterm,
    dataType : 'json',
    cache:false,
    success: function( data ) {
        var tindakan = data[0];
        var nama_jns_barang = data[1];
        if(data!=null) {
            if (tindakan!=null) {
                response(tindakan);
            }
            else if (nama_jns_barang!=null) {
                response(nama_jns_barang);
            }
        }
        else {
            //
        }
        }, // end of success
        error: function(jqXHR, textStatus, errorThrown) {
            alert(errorThrown);            
     }  //end of error                          
                            }) // end of ajax
                    }, // end of source
                    minLength: 2,
                    select: function( event, ui ) {
                        $("#caridata").val(ui.item.id);
                    } // end of select
                }); // end of autocomplete

【问题讨论】:

    标签: php json ajax autocomplete


    【解决方案1】:

    我还没有弄清楚如何传递多个数组,所以现在我只是将控制器中的搜索函数分组为一个函数并将数据加载到一个数组中。它现在成功了,但我仍在寻找答案。

    【讨论】:

      猜你喜欢
      • 2014-01-09
      • 1970-01-01
      • 2014-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-09
      • 2013-12-26
      • 1970-01-01
      相关资源
      最近更新 更多