AJAX 실시간 검색

AJAX는 사용자에게 더욱 친근하고 대화형 검색 환경을 제공합니다.

AJAX 실시간 검색

아래 예시에서는 검색을 입력하는 동안 얻을 수 있는 실시간 검색을 보여드리겠습니다. 결과.

실시간 검색은 기존 검색에 비해 많은 장점이 있습니다.

1. 데이터를 입력하면 일치하는 결과가 표시됩니다.

2. 계속해서 데이터를 입력할 때, 결과 필터링

3. 결과가 너무 적으면 문자를 삭제하여 범위를 넓힙니다.

HTML을 검색하려면 아래 텍스트 상자에 "HTML"을 입력하세요. 페이지:


위 예시의 결과는 XML 파일(links.xml)에서 확인할 수 있습니다. 이 예제를 작고 단순하게 유지하기 위해 6개의 결과만 제공합니다.

예제 설명 - HTML 페이지

위 입력란에 사용자가 문자를 입력하면 "showResult()" 함수가 실행. 이 함수는 "onkeyup" 이벤트에 의해 실행됩니다:

   

소스 코드 설명:

입력 상자가 비어 있는 경우(str.length==0), 이 함수는 함수는 실시간 검색 자리 표시자의 내용을 지우고 함수를 종료합니다.

입력 상자가 비어 있지 않으면 showResult()는 다음 단계를 수행합니다.

1. XMLHttpRequest 객체를 생성합니다.

2. 서버 응답이 준비되면

3. 서버의 파일에 요청을 보냅니다

4. URL 끝에 추가된 매개변수(q)에 유의하세요( 입력창)

PHP 파일

위에서 JavaScript를 통해 호출되는 서버 페이지는 "livesearch.php"라는 이름의 PHP 파일입니다.

"livesearch.php"의 소스 코드는 XML 파일에서 검색 문자열과 일치하는 제목을 검색하고 결과를 반환합니다.

load("links.xml"); $x=$xmlDoc->getElementsByTagName('link'); // 从 URL 中获取参数 q 的值 $q=$_GET["q"]; // 如果 q 参数存在则从 xml 文件中查找数据 if (strlen($q)>0) { $hint=""; for($i=0; $i<($x->length); $i++) { $y=$x->item($i)->getElementsByTagName('title'); $z=$x->item($i)->getElementsByTagName('url'); if ($y->item(0)->nodeType==1) { // 找到匹配搜索的链接 if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q)) { if ($hint=="") { $hint="" . $y->item(0)->childNodes->item(0)->nodeValue . ""; } else { $hint=$hint . "
" . $y->item(0)->childNodes->item(0)->nodeValue . ""; } } } } } // 如果没找到则返回 "no suggestion" if ($hint=="") { $response="no suggestion"; } else { $response=$hint; } // 输出结果 echo $response; ?>

JavaScript가 텍스트를 보내는 경우(예: strlen($q ) > 0), 어떻게 될까요?

1) XML 파일을 새 XML DOM 개체에 로드합니다.

2) 모든 요소를 탐색하여 일치하는 텍스트를 찾습니다.</p> <p>3) "$response" 변수에 올바른 URL과 제목을 설정하세요. 일치하는 항목이 두 개 이상 발견되면 모든 일치 항목이 변수에 추가됩니다.</p> <p>4) 일치하는 항목이 없으면 $response 변수를 "제안 없음"으로 설정합니다.</p> <p><br></p> </div> </div> <a class="course-btn course_code_header_next" href="//m.sbmmt.com/ko">지속적인 학습</a> </div> <div class="layui-col-md6 editor-box"> <div id="code_spread_shrink"> <div id="code_spread_shrink_show" unselectable="on"> <span>||</span> </div> </div> <div class="editor-tab js-editor-tab"> <div class="editor-left icon-left editor-op"></div> <div class="editor-view"> <ul class="clearfix" id="J_TabType" style="width: 120px; margin-left: 0px;"> <li class="ui-tabs-active"><a href="javascript:;">새로운 파일</a></li> </ul> </div> <div class="editor-right icon-right editor-op"></div> </div> <div id="editor-tabs-html" data-filename="index.html" data-lang="php" style="font-size: 16px;height:600px"> <?php // 需要与前面的HTML文件联合使用 $xmlDoc=new DOMDocument(); $xmlDoc->load("links.xml"); $x=$xmlDoc->getElementsByTagName('link'); // 从 URL 中获取参数 q 的值 $q=$_GET["q"]; // 如果 q 参数存在则从 xml 文件中查找数据 if (strlen($q)>0) { $hint=""; for($i=0; $i<($x->length); $i++) { $y=$x->item($i)->getElementsByTagName('title'); $z=$x->item($i)->getElementsByTagName('url'); if ($y->item(0)->nodeType==1) { // 找到匹配搜索的链接 if (stristr($y->item(0)->childNodes->item(0)->nodeValue,$q)) { if ($hint=="") { $hint="<a href='" . $z->item(0)->childNodes->item(0)->nodeValue . "' target='_blank'>" . $y->item(0)->childNodes->item(0)->nodeValue . "</a>"; } else { $hint=$hint . "<br /><a href='" . $z->item(0)->childNodes->item(0)->nodeValue . "' target='_blank'>" . $y->item(0)->childNodes->item(0)->nodeValue . "</a>"; } } } } } // 如果没找到则返回 "no suggestion" if ($hint=="") { $response="no suggestion"; } else { $response=$hint; } // 输出结果 echo $response; ?> </div> <div class="editor-btn"> <div class="editor-btn-inner"> <a href="javascript:;" class="code-btn-submit" id="J_Commit" title="제출하다">제출하다</a> <a href="javascript:;" class="code-btn-reset " id="J_EditorReset" title="코드 재설정">코드 재설정</a> <div class="aotorun" style="display: block;"> <input type="checkbox" id="aotoruncheck" title="선택하면 코드 수정이 자동으로 적용됩니다. 선택하지 않은 경우 제출해야 적용됩니다."> <label for="aotoruncheck" title="선택하면 코드 수정이 자동으로 적용됩니다. 선택하지 않은 경우 제출해야 적용됩니다.">자동운전</label> </div> </div> </div> </div> <div class="layui-col-md3" id="viewPort-content"></div> <!-- 右侧章节列表 --> </div> </div> <div class="phpSyyBox"> <div class="phpSyyLeft"> <div class="phpSyySyj"> <span class="right"><a href="//m.sbmmt.com/ko/code/294.html" title="이전 섹션"><b class="icon3"></b>이전 섹션</a></span> <em></em> <span class="right"><a href="//m.sbmmt.com/ko/code/302.html" title="다음 섹션"><b class="icon2"></b>다음 섹션</a></span> </div> <div class="phpSyyQhlx"> <a href="//m.sbmmt.com/ko/course.html" target="_blank" title="튜토리얼 목록"><b></b>튜토리얼 목록</a> </div> <div class="phpSyyHqbz"> <a href="//m.sbmmt.com/ko/wenda.html" target="_blank" title="도움을 받다"><b></b>도움을 받다</a> </div> <div class="clear"></div> </div> <div class="clear"></div> </div> <div class="layui-main"> <div class="layui-row"> <div class="layui-col-md9"> <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief"> <ul class="layui-tab-title"> <li class="layui-this">코스 추천</li> <li id="code_down_li">코스웨어 다운로드</li> </ul> <div class="layui-tab-content"> <!--推荐课程--> <div class="layui-tab-item layui-show"> <ul class="diy-vodeo diy-li-left php-video-ul"> <li><a href="//m.sbmmt.com/ko/course/1496.html" title=""><img alt="프론트엔드 Vue3 실전 전투 [손글씨 vue 프로젝트]" src="https://img.php.cn/upload/course/000/000/068/639b12e98e0b5441.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>중급</i>프론트엔드 Vue3 실전 전투 [손글씨 vue 프로젝트]</h3> </div> <div class="php-course-bottom"> <span class="l">2857명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1495.html" title=""><img alt="APIPOST 튜토리얼 [네트워크 통신 관련 기술 개념의 대중화]" src="https://img.php.cn/upload/course/000/000/068/63996f34c6c94370.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>초등학교</i>APIPOST 튜토리얼 [네트워크 통신 관련 기술 개념의 대중화]</h3> </div> <div class="php-course-bottom"> <span class="l">1795명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1494.html" title=""><img alt="Issue 22_실전 종합전투" src="https://img.php.cn/upload/course/000/000/068/6396fa7cacf3b832.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>중급</i>Issue 22_실전 종합전투</h3> </div> <div class="php-course-bottom"> <span class="l">5521명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1493.html" title=""><img alt="이슈 22_PHP 프로그래밍" src="https://img.php.cn/upload/course/000/000/068/6396fa6f383ca123.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>초등학교</i>이슈 22_PHP 프로그래밍</h3> </div> <div class="php-course-bottom"> <span class="l">5172명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1492.html" title=""><img alt="Issue 22_프론트엔드 개발" src="https://img.php.cn/upload/course/000/000/068/6396fa6140e14800.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>초등학교</i>Issue 22_프론트엔드 개발</h3> </div> <div class="php-course-bottom"> <span class="l">8713명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1491.html" title=""><img alt="빅데이터(MySQL) 비디오 튜토리얼 정식 버전" src="https://img.php.cn/upload/course/000/000/068/639188999c8fd700.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>중급</i>빅데이터(MySQL) 비디오 튜토리얼 정식 버전</h3> </div> <div class="php-course-bottom"> <span class="l">4525명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1490.html" title=""><img alt="실용적인 정보로 가득한 Go 언어 튜토리얼" src="https://img.php.cn/upload/course/000/000/068/638eb9972ff0a840.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>초등학교</i>실용적인 정보로 가득한 Go 언어 튜토리얼</h3> </div> <div class="php-course-bottom"> <span class="l">2794명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1489.html" title=""><img alt="GO 언어 핵심 프로그래밍 과정" src="https://img.php.cn/upload/course/000/000/068/63884a6b0880e953.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>초등학교</i>GO 언어 핵심 프로그래밍 과정</h3> </div> <div class="php-course-bottom"> <span class="l">2814명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1488.html" title=""><img alt="JS 고급 및 BootStrap 학습" src="https://img.php.cn/upload/course/000/000/068/638702e2c8dda719.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>중급</i>JS 고급 및 BootStrap 학습</h3> </div> <div class="php-course-bottom"> <span class="l">2563명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1487.html" title=""><img alt="SQL 최적화 및 문제 해결(MySQL 버전)" src="https://img.php.cn/upload/course/000/000/068/63846a02a06a2889.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>중급</i>SQL 최적화 및 문제 해결(MySQL 버전)</h3> </div> <div class="php-course-bottom"> <span class="l">3374명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1486.html" title=""><img alt="Redis+MySQL 데이터베이스 인터뷰 튜토리얼" src="https://img.php.cn/upload/course/000/000/068/637c751460263927.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>중급</i>Redis+MySQL 데이터베이스 인터뷰 튜토리얼</h3> </div> <div class="php-course-bottom"> <span class="l">2963명이 시청하고 있습니다.</span> </div></a></li> <li><a href="//m.sbmmt.com/ko/course/1485.html" title=""><img alt="음식을 배달하거나 프로그래밍을 배우시나요?" src="https://img.php.cn/upload/course/000/000/067/64be34e8b4aa0653.png" height="124" width="100%"> <div class="php-course-intro"> <h3><i>초등학교</i>음식을 배달하거나 프로그래밍을 배우시나요?</h3> </div> <div class="php-course-bottom"> <span class="l">5708명이 시청하고 있습니다.</span> </div></a></li> </ul> </div> <div class="layui-tab-item"> <div id="code_down" style="margin: 0 30px 26px;"> <div class="no_data" style="text-align: center;min-height: 490px;line-height:112px;padding: 190px 0;box-sizing: border-box;color: #e3e3e3;font-size: 20px;"> <div style="background: url(/static/images/lesson_video_lists.png) no-repeat;margin-right: 20px;width: 118px;height: 112px;background-position: 0 -389px;float:left;"></div>현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~ </div> </div> </div> </div> </div> </div> <div class="layui-col-md3 video-right-course"> <div class="layui-col-md12 title"> <p>이 강좌를 시청한 학생들도 학습하고 있습니다.</p> </div> <div class="layui-col-md12 php-video-img"> <a class="recommend" href="//m.sbmmt.com/ko/course/812.html" target="_blank"><img width="300" height="160" src="https://img.php.cn/upload/course/000/000/041/620debc3eab3f377.jpg" alt="최신 ThinkPHP 5.1 세계 최초 비디오 튜토리얼(PHP 전문가 온라인 교육 과정이 되기까지 60일)"><span class="font14">491180회 재생</span></a> </div> <div class="layui-col-md12 php-video-list"> <ul> <li><a class="font14 color66" title="PHP로 사업을 시작하는 방법에 대해 간단히 이야기해 보겠습니다." href="//m.sbmmt.com/ko/course/1503.html" target="_blank">PHP로 사업을 시작하는 방법에 대해 간단히 이야기해 보겠습니다.</a></li> <li><a class="font14 color66" title="웹 프론트 엔드 개발에 대한 빠른 소개" href="//m.sbmmt.com/ko/course/901.html" target="_blank">웹 프론트 엔드 개발에 대한 빠른 소개</a></li> <li><a class="font14 color66" title="민망한 물건 백과사전 사이트를 모방한 Mini 버전 MVC 프레임워크의 대규모 실용 Tianlongbabu 개발" href="//m.sbmmt.com/ko/course/836.html" target="_blank">민망한 물건 백과사전 사이트를 모방한 Mini 버전 MVC 프레임워크의 대규모 실용 Tianlongbabu 개발</a></li> <li><a class="font14 color66" title="PHP 실용 개발 시작하기: 빠른 PHP 생성 [중소기업 포럼]" href="//m.sbmmt.com/ko/course/902.html" target="_blank">PHP 실용 개발 시작하기: 빠른 PHP 생성 [중소기업 포럼]</a></li> <li><a class="font14 color66" title="로그인 인증 및 클래식 게시판" href="//m.sbmmt.com/ko/course/866.html" target="_blank">로그인 인증 및 클래식 게시판</a></li> <li><a class="font14 color66" title="컴퓨터 네트워크 지식 수집" href="//m.sbmmt.com/ko/course/1463.html" target="_blank">컴퓨터 네트워크 지식 수집</a></li> <li><a class="font14 color66" title="빠른 시작 Node.JS 정식 버전" href="//m.sbmmt.com/ko/course/1462.html" target="_blank">빠른 시작 Node.JS 정식 버전</a></li> <li><a class="font14 color66" title="당신을 가장 잘 이해하는 프론트엔드 강좌: HTML5/CSS3/ES6/NPM/Vue/...[원본]" href="//m.sbmmt.com/ko/course/1455.html" target="_blank">당신을 가장 잘 이해하는 프론트엔드 강좌: HTML5/CSS3/ES6/NPM/Vue/...[원본]</a></li> <li><a class="font14 color66" title="자신만의 PHP MVC 프레임워크 작성(깊이 있는 40개 장/자세한 내용/초보자가 발전하려면 읽어야 함)" href="//m.sbmmt.com/ko/course/1467.html" target="_blank">자신만의 PHP MVC 프레임워크 작성(깊이 있는 40개 장/자세한 내용/초보자가 발전하려면 읽어야 함)</a></li> </ul> </div> </div> </div> </div> <div class="phpcn-modal-layer fixed" style="z-index:9004;visibility:visible;opacity:1;display:none;"> <div class="phpcn-modal-title"> <div class="phpcn-modal-draggable dragging"> <span>노트</span> <a href="javascript:void(0)" class="phpcn-icon-close phpcn-modal-close js-modal-close">X</a> </div> </div> <div class="phpcn-modal-inner"> <div class="phpcn-modal-dialog"></div> </div> </div> <div class="phpFoot"> <div class="phpFootIn"> <div class="phpFootCont"> <div class="phpFootLeft"> <dl> <dt> <a href="//m.sbmmt.com/ko/about/us.html" rel="nofollow" target="_blank" title="회사 소개" class="cBlack">회사 소개</a> <a href="//m.sbmmt.com/ko/about/disclaimer.html" rel="nofollow" target="_blank" title="부인 성명" class="cBlack">부인 성명</a> <a href="//m.sbmmt.com/ko/update/article_0_1.html" target="_blank" title="Sitemap" class="cBlack">Sitemap</a> <div class="clear"></div> </dt> <dd class="cont1"> PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요! </dd> </dl> </div> </div> </div> </div> <input type="hidden" id="verifycode" value="/captcha.html"> </body> </html>