>  기사  >  백엔드 개발  >  PHP ajax 실시간입력 자동검색 매칭방법_php 스킬

PHP ajax 실시간입력 자동검색 매칭방법_php 스킬

WBOY
WBOY원래의
2016-05-16 20:27:03917검색

이 글의 예시에서는 php ajax 실제 입력의 자동 검색 및 매칭 방법을 설명하고 참고용으로 모두와 공유합니다. 구체적인 분석은 다음과 같습니다.

첫 번째 방법은 jquery autocomplete를 사용하고, 두 번째 방법은 jquery ajax를 사용합니다. 사실 둘 다 비슷합니다.

가장 간단한 방법은 아래 예시와 같이 jquery 자동완성 메서드를 직접 사용하는 것입니다.

html의 경우 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

<스크립트 유형="텍스트/자바스크립트"> $(함수(){
$("#abcc").bigAutocomplete({width:176,data:[{title:"부두 세기 타워",결과:"5976898"},{title:"부두 왕의 인장",결과:"5976896 "}, {제목:"Zhoushan Zhujiajian Dongsha Resort",결과:"5976895"},{제목:"Guangsha Tianducheng Jazz Garden",결과:"5976893"},{제목:"Greentown Jade Garden", 결과:"5976892"}, {title:"Jiangnan Minglou",result:"5976890"},{title:"Shimao Jiangbin Garden",result:"14869"}],callback:function(data){
$("#s_loupan").val(data.result)
}})
})
스크립트>


이 글의 목적은 The가 포함된 제목을 t의 첫 글자가 아닌 두 번째 텍스트의 첫 글자로 검색할 수 있도록 하는 것입니다.

예를 들어 Orbolg는 T를 누르면 표시되지 않고 O를 누르면 표시됩니다. 구현 코드는 다음과 같습니다. 테스트에는 문제가 없습니다. 🎜>


코드 복사 코드는 다음과 같습니다.
공개 함수 gwquery(){
If($_POST){
$zm = $_POST['데이터']
$wzm = $zm."%"
$b = M('Wpindexgw')
If($zm!="t"){//얻은 첫 글자가 t가 아닌 경우
$list1 = $b->where("gwstatus=1 및 gwname like '%$zm%'")->order("time desc")->select();//쿼리
$narr =배열()
foreach( $list1 as $key => $val){ foreach( $list1 as $key => $val){
​​​​ $ct2 =explod(" ",$val['gwname']);//제목을 가져와서 배열로 분할합니다.
              $szm=strtolower(substr($ct2[1],0,1)) //첫 번째 문자를 가져와서 소문자로 지정
If($ct2[0]=="The" && $szm==$zm){//첫 번째 문자가 The이고 두 번째 문자의 첫 글자가 제출된 것과 동일한 경우 여기서는 대소문자를 구분합니다.
           $narr[] = $val; //배열에 쓰기
                                                           }  
}else{ //첫 번째 문자가 T인 경우 첫 번째 단어인 The가 목록에 표시되는 것을 원하지 않습니다.
         $list1 = $b->where("gwstatus=1 및 gwname like '$wzm'")->order("time desc")->select()
foreach( $list1 as $key => $val){ foreach( $list1 as $key => $val){
         $ct2 = 폭발(" ",$val['gwname'])
If($ct2[0]=="The"){
​​​​ $unnarr[] = $key;//조건에 맞는 제거할 콘텐츠의 배열 레이블을 가져옵니다.                           
~ }  
}
$list = $b->where("gwstatus=1 및 gwname like '$wzm'")->order("time desc")->select();//일반 쿼리.
If($zm=="t"){//첫 번째 문자가 t일 때 위 쿼리에서 얻은 내용을 제거합니다. 즉 The인 경우 T를 누르면 표시되지 않습니다.
foreach($unnarr는 $uval로){
          unset($list[$uval]);                        ~ }else{//t가 아닌 다른 문자를 누르면 첫 번째 문자가 두 번째 문자와 일치하는 내용을 일반 쿼리 배열에 추가합니다.
If(!emptyempty($narr) && !emptyempty($list)){//The가 있는 조건은 정상이며 비어 있지 않습니다.
$list = array_merge($narr,$list);//배열을 병합합니다.
}else if(emptyempty($list)){//일반 쿼리는 비어 있습니다. 그런 다음 The로 시작하는 항목이 있는지 확인하고
이 있으면 병합합니다. $목록=배열()
$list = array_merge($narr,$list)
}
}  
If($목록){
$this->ajaxReturn($list,'성공',1)
}그밖에{
          $this->error("베스티어리를 찾을 수 없습니다.")
~ }  
}

이전 코드와 비교하면 다음과 같이 차이점이 너무 많습니다.



코드 복사
$b = M('Wpindexgw')
$list = $b->where("gwstatus=1 및 gwname like '$wzm'")->order("time desc")->select()
//덤프($list)
If($목록){
$this->ajaxReturn($list,'성공',1)
}그밖에{
          $this->error("베스티어리를 찾을 수 없습니다.")
~ }  
}

이 기사가 모든 사람의 PHP 프로그래밍 설계에 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.