Contoh Database MySQL dan AJAX PHP
- Halaman Sebelumnya AJAX XML
- Halaman Berikutnya AJAX responseXML
AJAX 可用来与数据库进行交互式通信。
AJAX 数据库实例
在下面的 AJAX 实例中,我们将演示网页如何使用 AJAX 技术从 MySQL 数据库中读取信息。
在下拉列表中选择一个客户
这个应用程序由四个元素组成:
- MySQL 数据库
- 一张简单的 HTML 表单
- JavaScript
- PHP 页面
数据库
数据库在本例中看起来类似这样:
id | CustomerID | CompanyName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|---|
1 | Alibaba | Alibaba Group | Ma Yun | ...... | Hangzhou | 310002 | China |
2 | APPLE | Apple Inc. | Tim Cook | ...... | Cupertino | 95014 | USA |
3 | BAIDU | BAIDU Inc. | Li YanHong | ...... | Beijing | 100080 | China |
4 | Canon | Canon USA Inc. | Tsuneji Uchida | ...... | New York | 11042 | USA |
Pengertian Contoh
Dalam contoh di atas, apabila pengguna memilih pelanggan di senarai turun di atas, fungsi yang dipanggil adalah "showUser()".
Fungsi ini diaktifkan oleh peristiwa onchange.
Ini adalah kod HTML:
Contoh
<!doctype html> <html> <head> <script> function showUser(str) { if (str=="") { document.getElementById("txtHint").innerHTML=""; return; } if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari xmlhttp=new XMLHttpRequest(); } else { // code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=function() { if (this.readyState==4 && this.status==200) { document.getElementById("txtHint").innerHTML=this.responseText; } } xmlhttp.open("GET","/demo/getcustomer.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <form> <select name="users" onchange="showUser(this.value)"> <option value="">Sila pilih pelanggan seorang:</option> <option value="1">Alibaba</option> <option value="2">APPLE</option> <option value="3">BAIDU</option> <option value="4">Canon</option> <option value="5">Google</option> <option value="6">HUAWEI</option> <option value="7">Microsoft</option> <option value="8">Nokia</option> <option value="9">SONY</option> <option value="10">Tencent</option> </select> </form> <br> <div id="txtHint"><b>Informasi pelanggan akan disini di daftar.</b></div> </body> </html>
Pengertian kod:
Dahulu, periksa apakah pelanggan telah dipilih. Jika tidak ada pelanggan yang dipilih (str == ""), kosongkan konten txtHint dan keluar dari fungsi. Jika ada pelanggan yang dipilih, lakukan hal berikut:
- Buat objek XMLHttpRequest
- Buat fungsi yang akan dijalankan ketika respons pelayan siap
- Kirim permintaan ke berkas di pelayan
- Perhatikan bahawa parameter (q) ditambahkan ke URL (dengan konten pilihan turun)
Berkas PHP
Halaman pelayan yang dipanggil oleh JavaScript adalah berupa berkas PHP bernama "getuser.php".
Sumber kod "getuser.php" menjalankan query ke pangkalan data MySQL dan mengembalikan hasil ke dalam table HTML:
<?php $q = intval($_GET['q']); $con = mysqli_connect('MyServer','MyUser','MyPassword','Customers'); if (!$con) { die('Could not connect: ' . mysqli_error($con)); } $sql="SELECT * FROM customerslist WHERE id = '".$q."'"; $result = mysqli_query($con,$sql); echo "<table>"; while($row = mysqli_fetch_array($result)) { echo "<tr><th>CustomerID</th><td>" . $row['CustomerID'] . "</td></tr>"; echo "<tr><th>CompanyName</th><td>" . $row['CompanyName'] . "</td></tr>"; echo "<tr><th>ContactName</th><td>" . $row['ContactName'] . "</td></tr>"; echo "<tr><th>Address</th><td>" . $row['Address'] . "</td></tr>"; echo "<tr><th>City</th><td>" . $row['City'] . "</td></tr>"; echo "<tr><th>PostalCode</th><td>" . $row['PostalCode'] . "</td></tr>"; echo "<tr><th>Country</th><td>" . $row['Country'] . "</td></tr>"; } echo "</table>"; mysqli_close($con); ?>
Pengertian: Apabila kerja panggilan daripada JavaScript ke fail PHP, berikut adalah kejadian:
- PHP buka sambungan dengan pelayan MySQL
- Mencari pelanggan yang betul
- Cipta satu jadual HTML, isikan data, dan kirim kembali "txtHint" placeholder
- Halaman Sebelumnya AJAX XML
- Halaman Berikutnya AJAX responseXML