- PHP - Mở đầu
- PHP - Giới thiệu
- PHP - Cài đặt môi trường
- PHP - Cú pháp
- PHP - Các kiểu biến
- PHP - Hằng (Constant)
- PHP - Toán tử
- PHP - Điều khiển luồng
- PHP - Vòng lặp
- PHP - Chuỗi (String)
- PHP - Các khái niệm Web
- PHP - GET & POST
- PHP - File Inclusion
- PHP - File & I/O
- PHP - Hàm
- PHP - Cookie
- PHP - Session
- PHP - Gửi Email
- PHP - Upload File
- PHP - Chuẩn viết Code
- PHP - Biến được định nghĩa trước
- PHP - Regular Expression
- PHP - Xử lý lỗi
- PHP - Bug & Debug
- PHP - Date & Time
- PHP & MySQL
- PHP & AJAX
- PHP & XML
- PHP - Hướng đối tượng
- PHP cho lập trình viên C
- PHP cho lập trình viên PERL
- PHP - Giới thiệu Form
- PHP - Ví dụ Validation
- PHP - Complete Form
- PHP - Ví dụ về đăng nhập
- PHP - Đăng nhập Facebook
- PHP - Tích hợp Paypal
- PHP - Đăng nhập MySQL
- PHP - AJAX Search
- PHP - AJAX XML Parser
- PHP - AJAX Auto Complete Search
- PHP - Ví dụ AJAX RSS Feed
- PHP - Giới thiệu XML
- PHP - Simple XML
- PHP - Simple XML GET
- PHP - Ví dụ SAX Parser
- PHP - Ví dụ DOM Parser
- PHP - Frame Work
- PHP - Core PHP vs Frame Work
- PHP - Design Pattern
- PHP - Tổng hợp hàm
- Hơn 100 bài tập PHP cơ bản và nâng cao
- Học Java cơ bản và nâng cao
- Học C++ cơ bản và nâng cao
AutoComplete Search với AJAX và PHP
Auto Complete Search là gì?
AutoComplete search box cung cấp các gợi ý khi bạn nhập dữ liệu vào trường. Tại đây, chúng ta sử dụng XML để gọi các gợi ý Autocomplete này. Ví dụ dưới minh họa cách sử dụng Autocomplete text box bởi sử dụng với PHP.
Index page
Index page nên là như sau:
<html> <head> <style> div { width:240px; color:green; } </style> <script> function showResult(str) { if (str.length==0) { document.getElementById("livesearch").innerHTML=""; document.getElementById("livesearch").style.border="0px"; return; } if (window.XMLHttpRequest) { xmlhttp=new XMLHttpRequest(); } else { xmlhttp=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> <h2>Nhập tên khóa học</h2> <input type="text" size="30" onkeyup="showResult(this.value)"> <div id="livesearch"></div> <a href="https://vietjack.com">Chi tiết khóa học </a> </form> </body> </html>
Tệp livesearch.php
Tệp này được sử dụng để gọi data từ xml file và nó sẽ gửi kết quả tới trình duyệt web.
<?php $xmlDoc=new DOMDocument(); $xmlDoc->load("autocomplete.xml"); $x=$xmlDoc->getElementsByTagName('link'); $q=$_GET["q"]; 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>"; } } } } } if ($hint=="") { $response="Mời bạn nhập một tên hợp lệ"; } else { $response=$hint; } echo $response; ?>
Tệp autocomplete.xml
File này chứa auto complete data và được truy cập bởi livesearch.php dựa trên trường title và url.
<pages> <link> <title>Android</title> <url>/android/index</url> </link> <link> <title>Java</title> <url>/java/index</url> </link> <link> <title>CSS </title> <url>/css/index</url> </link> <link> <title>Angularjs</title> <url>http:/vietjack.com/angularjs/index </url> </link> <link> <title>PHP</title> <url>/php/index </url> </link> <link> <title>Python</title> <url>/python/index </url> </link> <link> <title>Ajax</title> <url>/ajax/index </url> </link> <link> <title>nodejs</title> <url>/nodejs/index </url> </link> </pages>
Lưu chương trình trên trong một file có tên là test.php trong htdocs, sau đó mở trình duyệt và gõ địa chỉ http://localhost:8080/test.php sẽ cho kết quả:
Các bài học PHP phổ biến khác tại AZCode: