使用Jquery UI Autocomplet和CodeIgniter

时间:2016-02-23 15:46:27

标签: php codeigniter jquery-ui model-view-controller autocomplete

我正在尝试使用带有codeigniter的jquery自动完成小部件并不断收到内部服务器错误500.这是我正在使用的代码:

查看:

<html>
 <head></head>
  <body>
    <input type="text" id="customer_name"/>
  <script>

$(document).on('ready', function(){
    $("#customer_name").autocomplete({
        source: "<?=base_url('customer/customerLookup')?>" 
    });
});
</script>
</body>
</html>

控制器:

<?php



class customer extends CI_Controller {


public function customerInfo() {

    $this->load->view('header');
    $this->load->view('customer_view');
    $this->load->view('footer');

}

function customerLookup()
{


          $q = strtolower( $this->input->get('term'));
          $this->customer_model->get_customers($q);

 }

}

型号:

class customer_model extends CI_MODEL {


 function get_customers($q)
 {

    $this->db->select('customer_name');
    $this->db->like('customer_name', $q);
    $query = $this->db->get('customers');

        if($query->num_rows() > 0)
        {
              foreach ($query->result_array() as $row)
              {
                $row_set[] = htmlentities(stripslashes($row['customer_name'])); //build an array
              }

              return json_encode($row_set); //format the array into json data
        }
  }   
}

我已阅读了很多论坛,并尝试将'enable_query_string'更改为TRUE也尝试了'uri_protocol'。

论文是我目前的CSRF设置:

$config['csrf_protection'] = FALSE;
$config['csrf_token_name'] = 'csrf_test_name';
$config['csrf_cookie_name'] = 'csrf_cookie_name';
$config['csrf_expire'] = 7200;
$config['csrf_regenerate'] = TRUE;
$config['csrf_exclude_uris'] = array();

我继续收到内部服务器错误,无法弄清楚原因。非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

您收到的错误是因为您没有将模型类加载到控制器中。无需先加载&#39; customer_model&#39;应用程序不知道它的存在,提示空值错误。

在我所有控制器的开头,我养成了添加构造函数的习惯,并包含该控制器将要使用的所有模型/助手/库。要在控制器中执行此操作,请在类声明后直接添加以下代码:

   function __construct() {
        parent::__construct();

        $this->load->model('customer_model');

    }

还要确保您正在加载数据库&#39;图书馆:

$autoload['libraries']
autoload.php文件的