我在使用Codeigniter进行Jquery自动完成时遇到问题。当我使用自动填充数据时,它会出现,但它不可见。
查看
<script>
$(function () {
$('#suggest_product').autocomplete({
source: '<?php echo site_url("cart/suggest_products"); ?>',
select: function (event, ui) {
},
success: function (resp) {
alert("auto");
console.log(resp);
},
error: function () {
alert("Oops, that didn't work. Please try again.");
}
});
$.fn.extend({
propAttr: $.fn.prop || $.fn.attr
});
});
</script>
控制器
function suggest_products(){
print_r($this->Product_model->suggest_products($_REQUEST['term']));
}
模型
function suggest_products($term){
$data = array();
$term = strtolower( addslashes( trim( urldecode($term) ) ) );
$this->db->select('name');
$this->db->like('name',$term);
$this->db->or_like('sku', $term);
$this->db->limit(1);
$temp = $this->db->get('products')->result_array();
$data = json_encode($temp);
return $data;
}
在firebug中看到数据即将到来。此外,ul,li正在变为但<li><a></a></li>
为空。
请帮忙
答案 0 :(得分:0)
jQuery UI将数据自动填充为以下格式之一:
label
和/或value
属性所以这个:
[{"name":"BLOCKS GREY BIG PILLOW"}]
应该在服务器端代码中更改为以下之一:
["BLOCKS GREY BIG PILLOW"]
[{"label":"BLOCKS GREY BIG PILLOW"}]
最简单的解决方法可能是改变这一行:
$this->db->select('name AS `label`', FALSE);