我正在尝试使用带有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();
我继续收到内部服务器错误,无法弄清楚原因。非常感谢帮助。
答案 0 :(得分:1)
您收到的错误是因为您没有将模型类加载到控制器中。无需先加载&#39; customer_model&#39;应用程序不知道它的存在,提示空值错误。
在我所有控制器的开头,我养成了添加构造函数的习惯,并包含该控制器将要使用的所有模型/助手/库。要在控制器中执行此操作,请在类声明后直接添加以下代码:
function __construct() {
parent::__construct();
$this->load->model('customer_model');
}
还要确保您正在加载数据库&#39;图书馆:
$autoload['libraries']
autoload.php文件的