Php codeigniter中的jquery自动完成无法正常工作
当我搜索它给我不好的结果时,我写的lastname或firstname什么是在数据库它找不到它。空味精也不起作用。谢谢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');
这是我的控制器:
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>