php+ajax实时输入自动搜索匹配的方法


Posted in PHP onDecember 26, 2014

本文实例讲述了php+ajax实输入自动搜索匹配的方法分享给大家供大家参考。具体分析如下:

第一种方法利用了jquery autocomplete,第二种使用了jquery ajax,其实两个都差不多.

最简单的办法我们就是直接使用jquery autocomplete方法了,如下在实例.

html中,代码如下:

<script src="/js/v2/jquery.input_complete.js" type="text/javascript" ></script> 

<link rel="stylesheet" href="/css/v2/jquery.input_complete.css" type="text/css" /> 

<script type="text/javascript"> 

  $(function(){ 

   $("#abcc").bigAutocomplete({width:176,data:[{title:"九龙仓世纪华府",result:"5976898"},{title:"九龙仓君玺",result:"5976896"},{title:"舟山朱家尖东沙度假村",result:"5976895"},{title:"广厦天都城爵士花园",result:"5976893"},{title:"绿城玉园",result:"5976892"},{title:"江南铭楼",result:"5976890"},{title:"世茂江滨花园",result:"14869"}],callback:function(data){ 

    $("#s_loupan").val(data.result); 

   }});    

  }) 

</script> 

<input type="text" id="abcc" class="sel_quy" autocomplete="off" />

本文目的是让 某个标题 带有 The 的不按字母t首字母搜索,而是按照第二个文字的首字母搜索.

比如 The Orbolg,按T的时候不显示,按O的时候才显示,下面是实现代码,我自己都晕晕的,测试是没有问题,代码如下:

public function gwquery(){  

    if($_POST){  

    $zm = $_POST['data'];  

    $wzm = $zm."%";  

    $b = M('Wpindexgw');  

    if($zm!="t"){//获取的首字母不是t的时候  

    $list1 = $b->where("gwstatus=1 and gwname like '%$zm%'")->order("time desc")->select();//查询  

    $narr =array();  

    foreach( $list1 as $key => $val){          

        $ct2 = explode(" ",$val['gwname']);//获取标题拆分成数组。  

         $szm=strtolower(substr($ct2[1],0,1));  //获取首字母 并且小写  

        if($ct2[0]=="The" && $szm==$zm){//如果第一个字符是The 并且第二个字母首字母和提交的相同,这里The 区分大小写。  

        $narr[] = $val; //写入数组  

        }     

    }  

    }else{      //处理首字母是T的时候    ,不希望第一个字数The 的显示在列表里。  

        $list1 = $b->where("gwstatus=1 and gwname like '$wzm'")->order("time desc")->select();  

    foreach( $list1 as $key => $val){          

        $ct2 = explode(" ",$val['gwname']);  

        if($ct2[0]=="The"){  

        $unnarr[] = $key;//获取符合条件的,要去掉的内容的数组标号。       

        }  

    }     

}  

    $list = $b->where("gwstatus=1 and gwname like '$wzm'")->order("time desc")->select();//正常的查询。  

    if($zm=="t"){//处理当首字母是t的时候 ,去掉上面查询得到的内容,也就是如果是The的时候 按T 不显示。  

    foreach($unnarr as $uval){  

        unset($list[$uval]);  

    }             

    }else{//按下的不是t的时候,要把第二个首字母符合的内容添加到正常查询的数组中。  

    if(!emptyempty($narr) && !emptyempty($list)){//带The 的符合条件正常 本身也不空的时候。  

    $list = array_merge($narr,$list);//合并数组。  

    }else if(emptyempty($list)){//正常查询为空。则看是否有带The开头的,有则合并  

    $list=array();  

    $list = array_merge($narr,$list);     

    }

    }  

    if($list){  

    $this->ajaxReturn($list,'success',1);  

    }else{  

        $this->error("Bestiary not found.");  

        }  

    }  

}

相比之前的代码,相差太多,代码如下:
public function gwquery1(){//之前备份。。  

    if($_POST){  

    $zm = $_POST['data'];  

    $wzm = $zm."%";  

    $b = M('Wpindexgw');  

    $list = $b->where("gwstatus=1 and gwname like '$wzm'")->order("time desc")->select();  

    //dump($list);  

    if($list){  

    $this->ajaxReturn($list,'success',1);  

    }else{  

        $this->error("Bestiary not found.");  

        }  

    }  

}

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP 和 COM
Oct 09 PHP
CodeIgniter php mvc框架 中国网站
May 26 PHP
PHP远程连接MYSQL数据库非常慢的解决方法
Jul 05 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
PHP传参之传值与传址的区别
Apr 24 PHP
PHP浮点数的一个常见问题
Mar 10 PHP
PHP使用递归算法无限遍历数组示例
Jan 13 PHP
php基于dom实现读取图书xml格式数据的方法
Feb 03 PHP
Laravel 关联模型-关联新增和关联更新的方法
Oct 10 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
Oct 22 PHP
PHP发送邮件确认验证注册功能示例【修改别人邮件类】
Nov 09 PHP
解决Laravel使用验证时跳转到首页的问题
Nov 17 PHP
windows下配置php5.5开发环境及开发扩展
Dec 25 #PHP
PHP中require和include路径问题详解
Dec 25 #PHP
Yii框架调试心得--在页面输出执行sql语句
Dec 25 #PHP
Web程序工作原理详解
Dec 25 #PHP
php更新mysql后获取改变行数的方法
Dec 25 #PHP
php常见的魔术方法详解
Dec 25 #PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 #PHP
You might like
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP Undefined index报错的修复方法
2011/07/17 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
总结PHP删除字符串最后一个字符的三种方法
2016/08/30 PHP
PHP使用函数用法详解
2018/09/30 PHP
jquery弹出框的用法示例(2)
2013/08/26 Javascript
jquery表单验证框架提供的身份证验证方法(示例代码)
2013/12/27 Javascript
在Node.js中实现文件复制的方法和实例
2014/06/05 Javascript
jQuery mobile 移动web(6)
2015/12/20 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
jQuery中each循环的跳出和结束实例
2017/08/16 jQuery
Bootstrap的aria-label和aria-labelledby属性实例详解
2018/11/02 Javascript
详解如何使用node.js的开发框架express创建一个web应用
2018/12/20 Javascript
MockJs结合json-server模拟后台数据
2020/08/26 Javascript
Vue实现商品飞入购物车效果(电商项目)
2019/11/26 Javascript
vue 使用post/get 下载导出文件操作
2020/08/07 Javascript
[01:00:12]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第一场
2018/04/09 DOTA
Django 如何获取前端发送的头文件详解(推荐)
2017/08/15 Python
Python中 map()函数的用法详解
2018/07/10 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
pytorch 准备、训练和测试自己的图片数据的方法
2020/01/10 Python
解决python3插入mysql时内容带有引号的问题
2020/03/02 Python
Django Form常用功能及代码示例
2020/10/13 Python
基于python实现坦克大战游戏
2020/10/27 Python
python 实现表情识别
2020/11/21 Python
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
六一节目主持词
2014/04/01 职场文书
贺卡寄语大全
2014/04/11 职场文书
医院竞聘演讲稿
2014/05/16 职场文书
北京奥运会主题口号
2014/06/13 职场文书
爱国教育主题班会
2015/08/14 职场文书
2016重阳节红领巾广播稿
2015/12/18 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
十大最强电系宝可梦,阿尔宙斯电系之一,第七被称为雷神
2022/03/18 日漫
MySql如何将查询的出来的字段进行转换
2022/06/14 MySQL