codeigniter不会根据条件在数据库中返回数据

时间:2018-08-20 12:55:23

标签: php ajax codeigniter

我试图根据用户输入通过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>

请问我在做错什么吗?

1 个答案:

答案 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');

,并且必须先检查您发布的关键字的值,然后才能将其传递给模型。