Tutorial asas pembangunan PHP AJAX dan MySQL
Instance pangkalan data AJAX
AJAX boleh digunakan untuk berkomunikasi secara interaktif dengan pangkalan data
di bawah Contoh ini akan menunjukkan cara halaman web membaca maklumat daripada pangkalan data melalui AJAX
Sila pilih pelanggan dalam senarai lungsur di sebelah kiri:
Contoh ini terdiri daripada empat elemen:
Pangkalan data MySQL
Borang HTML ringkas
JavaScript
Halaman PHP
Pangkalan Data
Contoh ini memerlukan jadual data berikut dibuat dalam pangkalan data:
Borang HTML dan JavaScript
Untuk kod sumber, lihat 1.php
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <script> function showUser(str){ var xmlhttp; //检查是否有用户被选择 if(str==""){ document.getElementById("txt").innerHTML=""; return; } //创建 XMLHttpRequest 对象 if(window.XMLHttpRequest){ // IE7+, Firefox, Chrome, Opera, Safari 浏览器执行代码 xmlhttp=new XMLHttpRequest(); } else{ //IE6,IE5浏览器执行代码 xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); } //创建在服务器响应就绪时执行的函数 xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4 && xmlhttp.status==200){ document.getElementById("txt").innerHTML=xmlhttp.responseText; } } //向服务器上的文件发送请求 xmlhttp.open("GET","2.php?q="+str,true); xmlhttp.send(); } </script> </head> <body> <from> <!-- onchange 事件会在域的内容改变时触发 当用户在上面的下拉列表中选择某位用户时,会执行名为 "showUser()" 的函数 --> <select name="users" onchange="showUser(this.value)"> <option value="">选择一个人:</option> <option value="1">Peter Griffin</option> <option value="2">小 明</option> <option value="3">小 白</option> </select> </from> <br/> <br/> <div id="txt"><b>选择相应用户,用户信息将在这里展示出来</b></div> </body> </html>
Penjelasan kod sumber
Selepas pengguna memilih melalui senarai juntai bawah, fungsi showUser() dilaksanakan melalui acara onchange
Fungsi showUser() akan melakukan langkah berikut:
Semak sama ada pengguna dipilih
Buat objek XMLHttpRequest
Cipta fungsi untuk dilaksanakan apabila respons pelayan sedia
Hantar permintaan ke fail pada pelayan
Sila ambil perhatian parameter (q) yang ditambahkan pada penghujung URL (mengandungi kandungan senarai lungsur turun)
Halaman PHP
Ini di atas Halaman pelayan yang dipanggil melalui JavaScript ialah fail PHP bernama "2.php".
Kod sumber dalam "2.php" akan menjalankan pertanyaan terhadap pangkalan data MySQL dan mengembalikan keputusan dalam jadual HTML:
<?php header("Content-type: text/html; charset=utf-8"); $q=$_GET["q"]; //连接数据库 $con = mysqli_connect('localhost','root','root','test'); //判断是否连接成功 if(!$con){ die('连接数据库失败:'.mysqli_error($con)); } //选择数据库 mysqli_select_db($con,"test"); //设定字符集 mysqli_query($con,'set names utf8'); //从数据库中查出id对应的相应用户信息 $sql="SELECT * FROM customer WHERE id='".$q."'"; $result=mysqli_query($con,$sql); echo "<table border='1' cellspacing='0' cellpadding='0'> <tr> <th>姓</th> <th>名</th> <th>年龄</th> <th>家乡</th> <th>工作</th> </tr> "; //循环显示出用信息 while($row = mysqli_fetch_array($result)){ echo "<tr>"; echo "<td>".$row['FirstName']."</td>"; echo "<td>".$row['LastName']."</td>"; echo "<td>".$row['Age']."</td>"; echo "<td>".$row['Hometown']."</td>"; echo "<td>".$row['Job']."</td>"; echo "</tr>"; } echo "</table>"; ?>
Pengalaman pembelajaran
Contoh ini terutamanya termasuk mata pengetahuan berikut:
Asas borang: pilihan lungsur turun
Peristiwa onchange: Berlaku apabila kandungan domain berubah
Panggilan fungsi, hantaran nilai fungsi
Penciptaan objek AJAX XMLHttpRequest, apabila pelayan bertindak balas Fungsi yang dilaksanakan, menghantar permintaan kepada fail pada pelayan: Lihat 1-5 untuk pengalaman pembelajaran
Kaedah HTML DOM getElementById(): Mengembalikan rujukan kepada objek pertama dengan yang ditentukan ID
Penciptaan pangkalan data, menyambung ke pangkalan data, memilih pangkalan data, menetapkan set aksara, membuat pertanyaan daripada pangkalan data mengikut ID, menggelung keluar kandungan pangkalan data
Fungsi berkaitan pangkalan data:
mysqli_connect(): Buka sambungan baharu ke pelayan MySQL
mysqli_error(): Kembali ke sebelumnya Mesej ralat teks yang dihasilkan oleh operasi MySQL.
mysqli_select_db(): digunakan untuk menukar pangkalan data lalai untuk sambungan
mysqli_query(): laksanakan pertanyaan terhadap pangkalan data
mysqli_fetch_array(): Dapatkan baris daripada set hasil sebagai tatasusunan bersekutu, tatasusunan angka atau kedua-duanya