自动完成从数据库获取数据不起作用

时间:2017-05-16 07:21:19

标签: html css codeigniter

是的,我想为系统做自动完成。我从这里查看教程 - > [http://cahbagusnongkrong.blogspot.my/2016/11/membuat-autocomplete-dari-database.html.]

问题是我的自动完成仍然没有工作eventho我做了同样的教程(只是更改名称)

所以这是我的控制器:

public function __construct()
{
    parent::__construct();
    $this->load->model('Kepakaran_m');
    $this->load->helper('url', 'form');   

}

public function index()
{   $this->load->helper('form');
    $autocomp_bidang = $this->Kepakaran_m->get_bidang();
    $this->template->set('autocomp_bdg', $autocomp_bidang);
    $this->template->set('kepakaran',$kepakaran_staff);
    $this->template->render('profil/profilpersonal');

}  



public function get_bidang() {    
    $keyword = $this->uri->segment(3);
    $data = $this->dbsmk->from('kexpt103kodbidang')->like('bidang',$keyword)->get();            

    foreach($data->result() as $row)
    {
        $arr['query'] = $keyword;
        $arr['suggestions'][] = array(
            'value'    =>$row->bidang
        );
    }
    echo json_encode($arr);
}

我的模型如下:

 function get_bidang(){

 $sql= "SELECT bidang FROM kexpt103kodbidang ORDER BY bidang";

    $query = $this->dbsmk->query($sql);
    return $query->result();}

我的观点在这里:

<div class="col-sm-4 col-sm-offset-1">
     <div class="form-group">    
        <div class="col-md-12">
          <input type="text" class="form-control autocomplete" name="bidang" id="bidang" autofocus/>
         </div>
     </div>
  </div>
<script type="text/javascript">
var site = "<?php echo site_url();?>";
$(function(){
    $('#bidang').autocomplete({
        serviceUrl: site+'expert/get_bidang',
    });
});
</script> 

1 个答案:

答案 0 :(得分:0)

您需要调试您的功能。首先检查你的控制器是否正常工作。

您可以尝试以下代码:

<script type="text/javascript">
var site = "<?php echo site_url();?>";
$(function(){

    $('#bidang').autocomplete({
        serviceUrl: site+'expert/get_bidang/'+$(this).val()
    });
});
</script>

您需要为关键字传递值。还尝试使用firebug检查实际调用的URL。

尝试通过在从控制器发送之前打印结果进行调试。您也可以尝试使用控制器中的静态数组。

如果调试中有任何问题,请告诉我。