Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter中的jquery自动完成无法正常工作_Php_Jquery_Codeigniter - Fatal编程技术网

Php codeigniter中的jquery自动完成无法正常工作

Php codeigniter中的jquery自动完成无法正常工作,php,jquery,codeigniter,Php,Jquery,Codeigniter,当我搜索它给我不好的结果时,我写的lastname或firstname什么是在数据库它找不到它。空味精也不起作用。谢谢 这是我的控制器: class Search extends CI_Controller{ function index(){ $this->load->view('search_view'); } function search_users(){ $this->load->model('search_model');

当我搜索它给我不好的结果时,我写的lastname或firstname什么是在数据库它找不到它。空味精也不起作用。谢谢
这是我的控制器:

class Search extends CI_Controller{
  function index(){
    $this->load->view('search_view');
  }

  function search_users(){
    $this->load->model('search_model');
    if (isset($_GET['term'])){
      $q = strtolower($_GET['term']);
      $this->search_model->search($q);
    }
  }
}
这是一个模型:

class Search_model extends CI_Model{
      function search($q){
        $this->db->select('*');
        $this->db->like('CONCAT(user_profiles.firstn, " ", user_profiles.lastn)', $q);
        $query = $this->db->get('user_profiles');
        $query = $this->db->get('user_profiles');
    $row_set = array();
    $temp = array();

    if($query->num_rows > 0){
        foreach ($query->result_array() as $row){
            $temp['id'] = $row['id'];
            $temp['label'] = $row['firstn'].' '.$row['lastn'];
            $row_set[] = $temp; 
        }
          echo json_encode($row_set);
        }
      }
    }
这是我的观点:

<link rel="stylesheet" href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css">
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
  <script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<style type="text/css">
#empty-message { float: left; }
input { float: left }
</style>



<input type="text" id="search" />

<script>

$(function(){
    $('#search').autocomplete({
        source: "search/search_users",
        minLength:0,

        response: function(event, ui) {
            if (ui.content.length === 0) {
                $("#empty-message").text("No results found");
            }
            else {
                $("#empty-message").empty();
            }
        }

    });


});
</script>
这就是结果:

[{"id":"5","label":"Janosik icloud"},{"id":"7","label":"Janosik iicloud"},{"id":"8","label":"Janosik Smrdi"}]
但是如果我把其他的信写在空白页上没有最后的查询没有结果
这是我的桌子
id——用户id——角色——第一个——最后一个——出生——城市化身——profil\u pic
1 -- 1 -- 管理员-- 艾肯-- 艾科诺夫-- 1990-06-09 -- 齐利纳-- 空的-- 空的--

五,-- 6 -- 使用者-- 亚诺西克-- icloud-- 1999-05-06 -- 齐利纳-- 空的-- 空的--

六,-- 7 -- 使用者-- 艾肯-- 展望-- 1800-06-08 -- 空的-- 空的-- 空的--

七,-- 8 -- 使用者-- 亚诺西克-- 伊云-- 1000-08-09 -- 空的-- 空的-- 空的--

八,-- 9 -- 使用者-- 亚诺西克-- Smrdi-- 0000-00-00 -- 空的-- 空的-- 空--

  • 在控制器方法的开头打印变量
    $q
  • 在模型方法之前打印变量
    $q
  • 打印查询运行以检查您的
    $q
    是否正确发送到您的模型
我希望这对你有帮助 内部控制器

function search($q)
{
    $this->db->select('firstn,lastn');
    $this->db->like('CONCAT(user_profiles.firstn, " ", user_profiles.lastn)', $q);
    $query = $this->db->get('user_profiles');
    $row_set = array();
    $temp = array();
    if($query->num_rows > 0)
    {
        foreach ($query->result_array() as $row)
        {
            // give your id
            $temp['id'] = $row['id']; 
            // give your label
            $temp['label'] = $row['label']; 
            $row_set[] = $temp;
        }
    }
     echo json_encode($row_set);
     die;
}
看来

<script>

$(function(){
    $('#search').autocomplete({
        source: "search/search_users",
        minLength:0,
        response: function(event, ui) {
            var c = ui.content.length;
            check_data(c);
        }

    });
});

function check_data(data)
{
    if(data === 0)
    {
          $("#empty-message").text('No results found');
    }
    else
    {
        $("#empty-message").text( '' );
    }
}
</script>

$(函数(){
$(“#搜索”)。自动完成({
来源:“搜索/搜索用户”,
最小长度:0,
响应:功能(事件、用户界面){
var c=ui.content.length;
检查_数据(c);
}
});
});
功能检查数据(数据)
{
如果(数据===0)
{
$(“#空消息”).text('未找到结果');
}
其他的
{
$(“#空消息”).text(“”);
}
}

感谢回复,但它仍然只从数据库中搜索了几个名称。例如,我有大约7个名称,但它仍然找到相同的名称(大约3个)。在其他情况下,它什么也找不到,不显示MSG。请您提供您在数据库中的测试示例和名称?您可以使用$this->db->last_query()调试查询;然后检查您的查询是否正确?在MySQL服务器上运行调试查询,比较两个结果。您是否尝试过LOWER(CONCAT(NANES))和strtolower($string)?我尝试过了,谢谢,但它只在我放第二个字母的情况下运行查询,返回空白页面正确发送,当我放第二个字母的情况下,什么都没有发生
<script>

$(function(){
    $('#search').autocomplete({
        source: "search/search_users",
        minLength:0,
        response: function(event, ui) {
            var c = ui.content.length;
            check_data(c);
        }

    });
});

function check_data(data)
{
    if(data === 0)
    {
          $("#empty-message").text('No results found');
    }
    else
    {
        $("#empty-message").text( '' );
    }
}
</script>