在PHP CI中搜索实时Ajax不会打印结果

时间:2015-01-30 20:03:55

标签: javascript php ajax json codeigniter

我想知道为什么在这段代码中,当我在输入中键入名称时,没有结果。我还在控制台中看到错误Json解析器:

SyntaxError: JSON.parse: unexpected character at line 2 column 1 of the JSON data

问题可能来自json文件,该文件是由模型发送的,无法通过视图检索!或者来自json的其他内容!

视图:index.php的

<script>
    $(document).ready(function(){
      $("#search").keyup(function(){
        if($("#search").val().length>3){
        $.ajax({
            type: "post",
            url: "/phpAmir_contract/index.php/employee",
            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.FIRST_NAME + " " + val.LAST_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">
<p>Note:- Please start typing surname as "Chavan", "Patil"</p>
<input type="text" name="search" id="search" />
<ul id="finalResult"></ul>
</div>
</body>

控制器:

class Employee extends CI_Controller {

     public function __construct()
    {
        parent::__construct();
        $this->load->model('EmployeeModel');
    }

    public function index(){
        $search=  $this->input->post('search');
        $query = $this->EmployeeModel->getEmployee($search);
    //    $this->load->view('index',$query);
        echo json_encode ($query);  

    } 

模特:

class EmployeeModel extends CI_Model {

     function __construct()
  {
    parent::__construct(); 
  }
    function getEmployee($search){    
        $this->db->select("EMPLOYEE_ID,FIRST_NAME,LAST_NAME");
        $whereCondition = array('LAST_NAME' =>$search);
        $this->db->where($whereCondition);
        $this->db->from('trn_employee');
        $query = $this->db->get();
        return $query->result(); 
                }
}

这是我的结果,而不是在用户输入字符时输入框中有json结果,我看到它们都被转储到页面中了!

enter image description here

2 个答案:

答案 0 :(得分:-1)

然后从头开始:你的查询是对的吗?你的控制器中有数据吗?JSON看起来怎么样?

答案 1 :(得分:-2)

为什么要在控制器中加载视图?尝试删除该行并输出json。