【问题标题】:Live search using Codeigniter Mysql使用 Codeigniter Mysql 进行实时搜索
【发布时间】:2013-05-26 21:28:48
【问题描述】:

我正在做一个使用 Jquery Ajax、Php Codeigniter 和 Mysql 进行实时搜索的项目

这是我的模型代码:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Subjectmodel extends CI_Model {
   public function __construct() {
        parent::__construct();

    }
    function getSubject($search){
        $this->db->select("SUB_ID,NAME");
        $whereCondition = array('NAME' =>$search);
        $this->db->where($whereCondition);
        $this->db->from('ix08s_subjects');
        $query = $this->db->get();
        return $query->result();
    }
}
?>

这是我的控制器代码:

<?php
class Subject extends CI_Controller {
    function __construct() {
        parent::__construct();
        $this->load->model('SubjectModel');
    }
    public function index(){
        $search=  $this->input->post('search');
        $query = $this->SubjectModel->getSubject($search);
        echo json_encode ($query);
    }
}
?>

这是我的视图代码:

<html>
<head>
<script type="text/javascript" language="javascript" src="http://somexyz/js/javascripts/plugin/jquery.js"></script>
<script type="text/javascript" src="http://somexyz/js/javascripts/plugin/json2.js"></script>
<script>
    $(document).ready(function(){
      $("#search").keyup(function(){
        if($("#search").val().length>3){
        $.ajax({
            type: "post",
            url: "http://localhost/ibps/index.php/subject",
            cache: false,               
            data:'search='+$("#search").val(),
            success: function(response){
                $('#finalResult').html("");
                var obj = JSON.parse(response);
                if(obj.length>0){
                    try{
                        var items=[];   
                        $.each(obj, function(i,val){                                            
                            items.push($('<li/>').text(val.NAME));
                        }); 
                        $('#finalResult').append.apply($('#finalResult'), items);
                    }catch(e) {     
                        alert('Exception while request..');
                    }       
                }else{
                    $('#finalResult').html($('<li/>').text("No Data Found"));       
                }       

            },
            error: function(){                      
                alert('Error while request..');
            }
        });
        }
        return false;
      });
    });
</script>
</head>
<body>
<div id="container">
<input type="text" name="search" id="search" />
<ul id="finalResult"></ul>
</div>
</body>
</html>

这是我的输出:

[{"SUB_ID":"1","NAME":"physics"},{"SUB_ID":"2","NAME":"physics"}]

但这应该是正确的输出

http://jsfiddle.net/serigo1990/uShzQ/

找到答案

【问题讨论】:

    标签: php mysql ajax codeigniter


    【解决方案1】:

    dataType: 'json' 添加到ajax 设置

    【讨论】:

      【解决方案2】:

      ==查看页面==

        <select class="itemName form-control"  name="itemName"></select>
        <input type="submit" name="search"  value="search" >
      
      
      
      
        $('.itemName').select2({
          ajax: {
            url: '<?php echo base_url(); ?>/Controller_name/search',
            dataType: 'json',
            processResults: function (data) {
             return {
                results: data
              };
            },
            cache: true
          }
        });
      
                    ==Controller==
      function search(){
          $this->load->database();
          $this->db->like('field_name', $this->input->get("q"));
          $this->db->select('id,field_name as text');
          $this->db->from('software');
          $res = $this->db->get()->result_array();
          echo json_encode($res);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多