【发布时间】:2016-09-14 23:32:13
【问题描述】:
我在 codeigniter 中开发了一个自动完成功能,但问题是,如果我们输入两个字母,它会匹配 2 个或超过 2 个字符,但它只显示 1 条记录,我不知道为什么会这样。谁能帮帮我。
我有 3 条符合以下条件的记录:
- 车辆
- 重型道路车辆
- 小型车辆
当我输入 Ve 时,它会显示 Design & Development 而当我输入 Beh 时,它只会显示 Vehicle 因为它应该显示所有三个。所有 3 条记录都包含名称 vehicles,谁能告诉我我在哪里做错了
这是我的 php 模型 Get_data.php
public function result($keyword) {
$get_data = $this->db->like('cat_name', $keyword);
$get_data = $this->db->order_by("cat_id", "ASC");
$get_data = $this->db->get('categories');
foreach($get_data->result() as $data):
$sport = str_replace($keyword, "<b>" . $keyword . "</b>" , $data->cat_name);
$html = '<li onclick="set_item(\''.str_replace("'", "\'", $data->cat_name).'\')">';
$html .= $sport;
$html .= "</li>";
return $html;
endforeach;
}
我的 php 控制器
public function getData() {
$keyword = $this->input->post('keyword');
$html = $this->get_data->result($keyword);
echo $html;
}
这是我使用的 ajax 查询
function autocomp() {
var min_length = 0;
var keyword = $("#skills").val();
if(keyword.length > min_length) {
$.ajax({
type : "POST",
data : {keyword: keyword},
dataType : 'text',
url : "http://localhost:90/tufuturo/home/getData",
success : function(data) {
$("#resultkeyword").show();
if(data == false) {
$("#resultkeyword").html("<li>No Results Found</li>");
} else {
$("#resultkeyword").html(data);
}
}
});
} else {
$("#resultkeyword").hide();
}
}
function set_item(item) {
$("#skills").val(item);
$("#resultkeyword").html("<li><b>"+item+"</b></li>");
$("#resultkeyword").hide();
}
【问题讨论】:
标签: php jquery mysql ajax codeigniter