通过ajax,mongodb在codeigniter中进行实时搜索

时间:2018-11-12 11:04:57

标签: ajax mongodb codeigniter

这是我的ajax代码,它从数据中获取所有数据并显示在表格中,但是当我在搜索框中输入字母时,它再次在表格中获取完整的数据

<script>
    $(document).ready(function(){

     load_data();

     function load_data(query)
     {
      var xhttp = new XMLHttpRequest(); 
     xhttp.open("GET", "<?php echo base_url() ?>Appconfig/get_masteradmin_data?query="+query,true);
     xhttp.onload= function()
    {
      if (xhttp.status >=200 && xhttp.status <400)
      {
        var data= JSON.parse(xhttp.responseText);
        var html = '';
            var i;
            for(i=0; i<data.length; i++){

                        html +='<tr>'+
                                    '<td>'+data[i].full_name+'</td>'+
                                    '<td>'+data[i].username+'</td>'+
                                    '<td>'+data[i].designation+'</td>'+
                                    '<td>'+data[i].department+'</td>'+
                                    '<td>'+data[i].official_mobile_no+'</td>'+
                                    '<td>'+data[i].official_email_id+'</td>'+
                                    '<td>'+data[i].select_user_type+'</td>'+
                                    '<td>'+data[i].permission+'</td>'+
                                '</tr>';
                    }
            showdata.insertAdjacentHTML('beforeend',html);  
      }
      else
      {
      console.log("Try again after some time");
      }

      };
      xhttp.send();
     }


     $('#search').keyup(function(){
      var search = $(this).val();
      //console.log(search);
      if(search != '')
      {
       load_data(search);
      }
      else
      {
       load_data();
      }
     });
    });
</script>

这是我的模型,用于从mongodb集合中获取数据。

public function get_masteradmin_data($query)
    {
        $mongo = new \MongoDB\Driver\Manager('mongodb://localhost:27017');
        $query= '';
        //$filter = ['full_name' => 'www'];
        $regex = new MongoDB\BSON\Regex ($query);
        $filter = ['full_name'=>$regex,];
        $options =[
                    'projection' => [
                                    '_id' => 0,
                                    'full_name' => 1,
                                    'username' => 1,
                                    'designation'=> 1,
                                    'department'=> 1,
                                    'official_mobile_no'=> 1,
                                    'official_email_id'=> 1,
                                    'select_user_type'=> 1,
                                    'permission'=> 1,
                                    ],
                    'sort' => [
                                '_id' => -1
                            ],

        ];

            $query = new MongoDB\Driver\Query($filter, $options);
            //$readPreference = new MongoDB\Driver\ReadPreference(MongoDB\Driver\ReadPreference::RP_PRIMARY);
            $result = $mongo->executeQuery('justrack_db.master_admin', $query); 


           $res = array();
            foreach($result as $r)
                { 
                    $res[] = $r;
                }
            return json_encode($res,true);
            //return $res;
    }

这是我用于显示数据的控制器。我不确定,但是我认为控制器中存在一些问题,因为我试图回显$ query但它什么也没显示。我不知道如何解决此问题。

public function get_masteradmin_data()
        {
            $query = '';
            $this->load->model('AppconfigModel');
            $this->master_admin();
            if($this->input->post('query'))
              {
               $query = $this->input->post('query');
              }
            $result= $this->AppconfigModel->get_masteradmin_data($query);
            echo ($result);

        }

0 个答案:

没有答案