使用codeigniter中的选择框ajax过滤列表

时间:2015-02-17 08:46:36

标签: ajax codeigniter

我想使用选择框过滤表格中的数据。当用户从选择框中选择值时,表格上的列将被过滤。我的意思是该表只显示包含用户选择的选择框值的数据。任何人都可以帮助我

这是我的ajax:

 <script>
    $("#inputJenis").on('change',function(){
      if($("#inputJenis").val() != 'Ganjil'){
        $.ajax({
        type: "POST",
        url:'<?php echo base_url()?>search/filter',
        data:'selectvalue='+$('#inputJenis').val(),
        cache: false,
        success: function(data){
          $(#tableData).html(data);
        },
        error: function(data){

        //return false;
      }
      });

    });
    });
</script>

这是我的控制者:

public function filter()
    {
        $this->load->helper('url');

        $this->load->model('filter_model');
        $this->filter_model->getData();

        $data = $this->filter_model->getData();

        echo json_encode($data);
    }

这是我的模特:

public function getData($type)
    {
        $this->db->select('jenis');
        $query = $this->db->get('tahunajaran');

        return $query->result();

        echo json_encode($query);
    }

此代码无效。请帮帮我

1 个答案:

答案 0 :(得分:0)

试试这个:

AJAX:

<script type="text/javascript">
   var base_url='<?php echo base_url(); ?>';
</script>    
<script>
$("#inputJenis").change(function(e){
  if($("#inputJenis").val() != 'Ganjil'){
    $.ajax({
    type: "POST",
    url:base_url+'search/filter',
    data:'selectvalue='+$('#inputJenis').val(),
    cache: false,
    success: function(data){
      $(#tableData).html(data);
    },
    error: function(data){
    //return false;
    }
   });
  });
});
</script>

控制器

public function filter()
{
    $this->load->helper('url');

    $this->load->model('filter_model');
    $this->filter_model->getData();
    $selectValue=$this->input->post('selectvalue')
    $data = $this->filter_model->getData($selectValue);

    echo json_encode($data);
}

模型

public function getData($selectValue)
{
    $this->db->select('jenis');
    //Change it with your Field Name
    $query = $this->db->where('SomeField',$selectValue)->get('tahunajaran'); 
    return $query->result_array();
}