codeigniter中的自动完成功能不显示任何内容

时间:2018-01-17 04:45:28

标签: javascript jquery codeigniter autocomplete

Hy,我在codeigniter中创建了一个自动完成搜索字段,我尝试使用下面的代码在codeignter中自动完成。但它不适用于我。在自动填充文本字段中没有显示任何内容。任何人都可以找到问题< / p>

数据显示为未定义的成功函数

以下是我的观点:

View
 <script >
     $(document).ready(function() {
 $("#trackerid").change(function(){
        var var_locoid= $("#trackerid option:selected").val();
        alert(var_locoid);
        $( "#deliverylocation" ).autocomplete({

            source: function(request, response) {
                var auto_data= $("#deliverylocation").val();
                      alert(auto_data);

                //alert(var_locoid);
               $.ajax({
                 url:"http://localhost/testcontroller/test/lookup",
                 type:"POST",
                 datatype:'json',
                 data:{'var_locoid' :var_locoid,'auto_data':auto_data},
                 success: function(data){
                    response(data);
                    alert(data);
                }
            });
        },
        minLength: 1
        });
    });});
     </script>

                                <input type="text" name="deliverylocation" id="deliverylocation" placeholder="Enter your area " >

控制器

    function lookup()
{
   $citys = $this->input->post('var_locoid'); 
      $auto_text = $this->input->post('auto_data');  

                    //var_dump($citys);
         //$data['response'] = 'false'; 
  $place = $this->Demo_model->load_places($citys,array('keyword' => $auto_text));   
    $json_array = array();
    foreach ($place as $row){
    array_push($json_array, $row->locationtext);
    }
           //echo json_encode($place);
   echo json_encode($json_array);
}



Model

function load_places($citys,$auto_text)
    {
        //$this->db->select('locationtext');
        $this->db->select('locationtext');
        $this->db->like('locationtext', $auto_text);
        $this->db->from('tbl_location');
        $array = array('cityautocode' => $citys);
        $this->db->where($array);
        //$this->db->->where('cityautcode', $place);
         $query= $this->db->get();
        //echo $this->db->last_query();

          return $query->result();

    }

1 个答案:

答案 0 :(得分:0)

我正在使用https://www.devbridge.com/sourcery/components/jquery-autocomplete/

中的自动填充模式

这是我的控制器:

$arrayData = $this->CRUD_model->getSelect("id as data, name as value, purchase_price","articles")->result_array();
    echo json_encode($arrayData);

我的意见:

$(document).ready(function(){
    // $("body").addClass("sidebar-collapse");
    var dataArticles = $.parseJSON(getArticles());
    $("input[name='articles_name']").devbridgeAutocomplete({
        lookup: dataArticles,
        onSelect: function(suggestion) {
            $("input[name='articles_id']").val(suggestion.data);
        },
        showNoSuggestionNotice: true,
        noSuggestionNotice: 'Barang tidak ditemukan',
        noCache: true,
        minChars: 2,
    })
})

function getArticles(){
    result = null;
    $.ajax({url: '<?= base_url();?>panel/purchasing/request/getArticles',type: 'get',dataType: 'html',async: false,success: function(data) {result = data;} });
    return result;
}

对于此示例,我使用查找,因此在打开页面时加载了所有自动完成值,请注意id必须命名为&#34; data&#34;和标签必须命名为&#34;值&#34;。