-
[PHP] 53. AJAX 실시간 검색 ( AJAX Live Search) - PHP 강좌, PHP5Web/PHP 2015. 6. 13. 14:15
PHP Example - AJAX Live Search
AJAX는 좀 더 사용자 친화적이고 상호작용적 검색을 만드는데 사용됩니다.
1. AJAX Live Search
아래 예제는 사용자가 타이핑하는 동안 실시간 검색을 할 수 있게 보여줍니다.
실시간 검색(Live Search)는 기본 검색과 비교했을 때 많은 장점을 갖습니다:
- 타이핑과 동시에 결과 보여줌
- 타이핑하는 동안 작은 결과창 보여줌
2. Example Explained - The HTML Page
123456789101112131415161718192021222324252627282930313233343536<html><head><script>function showResult(str) {if (str.length==0) {document.getElementById("livesearch").innerHTML="";document.getElementById("livesearch").style.border="0px";return;}if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safarixmlhttp=new XMLHttpRequest();} else { // code for IE6, IE5xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");}xmlhttp.onreadystatechange=function() {if (xmlhttp.readyState==4 && xmlhttp.status==200) {document.getElementById("livesearch").innerHTML=xmlhttp.responseText;document.getElementById("livesearch").style.border="1px solid #A5ACB2";}}xmlhttp.open("GET","livesearch.php?q="+str,true);xmlhttp.send();}</script></head><body><form><input type="text" size="30" onkeyup="showResult(this.value)"><div id="livesearch"></div></form></body></html>cs 3. The PHP File
123456789101112131415161718192021222324252627282930313233343536373839404142434445<?php$xmlDoc=new DOMDocument();$xmlDoc->load("links.xml");$x=$xmlDoc->getElementsByTagName('link');//get the q parameter from URL$q=$_GET["q"];//lookup all links from the xml file if length of q>0if (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) {//find a link matching the search textif (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>";}}}}}// Set output to "no suggestion" if no hint was found// or to the correct valuesif ($hint=="") {$response="no suggestion";} else {$response=$hint;}//output the responseecho $response;?>cs links.xml
123456789101112131415161718192021222324252627<?xml version="1.0" encoding="utf-8"?><pages><link><title>HTML a tag</title></link><link><title>HTML br tag</title></link><link><title>CSS background Property</title></link><link><title>CSS border Property</title></link><link><title>JavaScript Date Object</title></link><link><title>JavaScript Array Object</title></link></pages>cs * 이 강좌는 'w3schools'를 참조하여 작성하였습니다.
'Web > PHP' 카테고리의 다른 글
[PHP] 55. AJAX Poll - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 54. AJAX RSS Reader - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 52. AJAX 와 XML ( AJAX and XML) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 51. AJAX 와 MySQL ( AJAX and MySQL) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 50. AJAX 와 PHP(AJAX and PHP) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 49. AJAX 소개( AJAX Introduction) - PHP 강좌, PHP5 (0) 2015.06.13