我试图根据用户输入通过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>
请问我在做错什么吗?
答案 0 :(得分:0)
您的关键字输入字段的ID为 loca ,但是您在关键字选择器中使用了 loc ,并且发布数据必须为json格式,因此您的ajax代码应为< / p>
$(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');
,并且必须先检查您发布的关键字的值,然后才能将其传递给模型。