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&amp;MYSQL服务器配置说明
Oct 09 PHP
《APMServ 5.1.2》使用图解
Oct 23 PHP
php minixml详解
Jul 19 PHP
php mssql 时间格式问题
Jan 13 PHP
PHP 函数执行效率的小比较
Oct 17 PHP
php DOS攻击实现代码(附如何防范)
May 29 PHP
windows下安装php的memcache模块的方法
Apr 07 PHP
Yii实现单用户博客系统文章详情页插入评论表单的方法
Dec 28 PHP
php代码架构的八点注意事项
Jan 25 PHP
PHP实现QQ快速登录的方法
Sep 28 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
Laravel框架模型的创建及模型对数据操作示例
May 07 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
星际争霸秘籍
2020/03/04 星际争霸
JavaScript的类型简单说明
2010/09/03 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
javascript获取元素CSS样式代码示例
2013/11/28 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
基于jQuery和CSS3制作数字时钟附源码下载(jquery篇)
2015/11/24 Javascript
点评js异步加载的4种方式
2015/12/22 Javascript
一系列Bootstrap导航条使用方法分享
2016/04/29 Javascript
jQuery实现简单的网页换肤效果示例
2016/09/18 Javascript
JavaScript浮点数及运算精度调整详解
2016/10/21 Javascript
AngularJs上传前预览图片的实例代码
2017/01/20 Javascript
input输入框内容实时监测(附代码)
2017/08/15 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
微信小程序调用wx.getImageInfo遇到的坑解决
2020/05/31 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
Selenium执行JavaScript脚本的方法示例
2020/12/31 Javascript
[01:00:14]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第三场
2018/04/10 DOTA
python读取Android permission文件
2013/11/01 Python
在Python程序中操作MySQL的基本方法
2015/07/29 Python
django session完成状态保持的方法
2018/11/27 Python
python爬取指定微信公众号文章
2018/12/20 Python
python匿名函数的使用方法解析
2019/10/10 Python
Python递归调用实现数字累加的代码
2020/02/25 Python
利用python下载scihub成文献为PDF操作
2020/07/09 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
极度干燥澳大利亚官方网站:Superdry澳大利亚
2019/03/28 全球购物
党员一帮一活动总结
2014/07/08 职场文书
人力资源职位说明书
2014/07/29 职场文书
机电专业毕业生自我鉴定2014
2014/10/04 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
电子银行业务授权委托书
2014/10/10 职场文书
2015年乡镇工会工作总结
2015/05/19 职场文书
2015年物业管理员工工作总结
2015/10/15 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers
go原生库的中bytes.Buffer用法
2021/04/25 Golang