我試圖在codeigniter中進行自動完成搜索,但問題是當用戶在輸入字段中寫入時第一次打開列表,但沒有根據用戶輸入進行更改。它只在第一時間發生。在運行時自動完成搜索欄
這裏是我的代碼:
<script>
$(document).ready(function(){
$('#text').keyup(function() {
var min_length = 0;
var keyword = $('#text').val();
if (keyword.length >= min_length) {
$.ajax({
url: 'http://localhost/new/index.php/travels/search_fields',
type: 'POST',
dataType: 'json',
data: { term: $("#text").val()},
success: function(data) {
$.each(data, function() {
$.each(this, function(k, v) {
$("#demo").append("<li>" + v + "</li>");
});
});
}
});
} else {
$('#demo').hide();
}
});
});
</script>
和查詢是:
function search_field($country_id){
$this->db->distinct();
$this->db->select("destination");
$this->db->from('travels_detail');
$this->db->like('destination', $country_id);
$query = $this->db->get();
return $query->result();
- 您可以正確摺疊您的代碼:)我無法編輯,因爲編輯處於待處理狀態。 - 2 - 我不確定你的代碼在PHP中,你使用哪個數據庫? 'like'可能與'%'一起表示字符串沒有完成。 '$ this-> db-> like('destination',$ country_id。'%');'你可以console.log得到$ each(data,...)的結果嗎?我會幫你的。 '$(「#demo」)。append',所以你追加,你永遠不會清除'$('#demo')'? –