我正在使用带有 codeigniter 框架的 jQuery 自动完成功能。
这目前 100% 有效。
我的模型是:
function get_sku_code($q){
$this->db->select('ProductCode');
$this->db->like('ProductCode', $q);
$query = $this->db->get('ProductList');
if($query->num_rows > 0){
foreach ($query->result_array() as $row){
$row_set[] = htmlentities(stripslashes($row['ProductCode'])); //build an array
}
$this->output->set_content_type('application/json')->set_output(json_encode($row_set));
}
}
我的视图 javascript 是:
$("#product").autocomplete(
{
source: "get_sku_codes",
messages:
{
noResults: '',
results: function() {}
},
select: function( event, ui )
{
var selectedObj = ui.item;
$.post('get_sku_prices', {data:selectedObj.value},function(result) {
$("#product").parent().parent().find('input[id^="price"]').val(result[0]);
$("#product").parent().parent().find('input[id^="adjustedprice"]').val(result[0]);
});
}
});
如前所述,这 100% 有效。我遇到的一个问题是,如果没有数据库匹配,则自动完成列表只是空白。当模型没有返回值时,有没有办法返回“数据库中没有匹配项”?我应该使用 jquery 还是使用 codeigniter mysql 请求来执行此操作?
一如既往地感谢,
控制器 - get_sku_codes
function get_sku_codes(){
$this->load->model('Sales_model');
if (isset($_GET['term'])){
$q = strtolower($_GET['term']);
$this->Sales_model->get_sku_code($q);
}
}