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去掉字符串的最后一个字符附substr()的用法
Mar 23 PHP
PHP系列学习之日期函数使用介绍
Aug 18 PHP
学习php分页代码实例
Oct 24 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
php中substr()函数参数说明及用法实例
Nov 15 PHP
谈谈 PHP7新增功能
Dec 16 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
CI框架AR操作(数组形式)实现插入多条sql数据的方法
May 18 PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 PHP
Laravel中encrypt和decrypt的实现方法
Sep 24 PHP
php图片合成方法(多张图片合成一张)
Nov 25 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
Oct 16 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
php smarty函数扩展
2010/03/15 PHP
php使用fputcsv()函数csv文件读写数据的方法
2015/01/06 PHP
php实现跨域提交form表单的方法【2种方法】
2016/10/17 PHP
php中输出json对象的值(实现方法)
2018/03/07 PHP
javascript preload&amp;lazy load
2010/05/13 Javascript
父子窗体间传递JSON格式的数据的代码
2010/12/25 Javascript
用原生JavaScript实现jQuery的$.getJSON的解决方法
2013/05/03 Javascript
13 款最热门的 jQuery 图像 360 度旋转插件推荐
2014/12/09 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
js实现年月日表单三级联动
2020/04/17 Javascript
JavaScript常见JSON操作实例分析
2018/08/08 Javascript
jQuery实现动态生成年月日级联下拉列表示例
2019/05/11 jQuery
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
浅谈vue-router路由切换 组件重用挖下的坑
2019/11/01 Javascript
微信小程序实现倒计时功能
2020/11/19 Javascript
python实现绘制树枝简单示例
2014/07/24 Python
python进程管理工具supervisor的安装与使用教程
2017/09/05 Python
20个常用Python运维库和模块
2018/02/12 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
基于python实现KNN分类算法
2020/04/23 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
Python中print和return的作用及区别解析
2019/05/05 Python
python中update的基本使用方法详解
2019/07/17 Python
python实现处理mysql结果输出方式
2020/04/09 Python
如何用python批量调整视频声音
2020/12/22 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
英国山地公路自行车商店:Tweeks Cycles
2018/03/16 全球购物
毕业生的自我鉴定
2013/10/29 职场文书
大学生实习思想汇报
2014/01/12 职场文书
客服部工作职责范本
2014/02/14 职场文书
创业培训计划书
2014/05/03 职场文书
2014大学辅导员工作总结
2014/12/02 职场文书
承德避暑山庄导游词
2015/02/03 职场文书
学校运动会通讯稿
2015/07/18 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python