[英]codeigniter not returning data from database based on where condition
我試圖通過基於用戶輸入的codeigniter中的ajax調用獲取一些數據,但是我一直從數據庫而不是匹配項中獲取所有結果。
這是我的ajax:
$(document).ready(function () {
$(".filter").keyup(function () {
var keyword= $("#loc").val();
$.ajax({
type: "POST",
url: CFG.url + '/pages/filter_hotel_by_loc/',
data: keyword,
dataType: "json",
success: function (data) {
console.log(data);
}
});
});
});
模型:
public function hotel_by_location($keyword){
$this->db->like("location", $keyword);
$query = $this->db->get('hotels');
return $query->result_array();
控制器:
public function filter_hotel_by_loc(){
$keyword=$this->input->post('loc');
$data=$this->page_model->hotel_by_location($keyword);
echo json_encode($data);
視圖:
<div class="input-style-1 b-50 color-3">
<?php echo form_open_multipart('hotels/filter_hotel_by_loc') ?>
<img src="<?php echo base_url();?>assets/img/loc_icon_small_grey.png"alt="">
<input type="text" name="loc" placeholder="What city do you prefer?"id="loca" class="filter">
</form>
</div>
請問我做錯了什么?
您的關鍵字輸入字段具有id loca,但是您在關鍵字選擇器中使用了loc ,並且發布數據必須采用json格式,因此您的ajax代碼應類似於
$(document).ready(function () {
$(".filter").keyup(function () {
var keyword= $("#loca").val();
$.ajax({
type: "POST",
url: CFG.url + '/pages/filter_hotel_by_loc/',
data: {'keyword':keyword},
dataType: "json",
success: function (data) {
console.log(data);
}
});
});
});
並替換這條線
$keyword=$this->input->post('loc');
有了這個
$keyword=$this->input->post('keyword');
並且必須先檢查您發布的關鍵字的值,然后再將其傳遞給模型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.