Pengundian AJAX
Dalam contoh berikut, kami akan menunjukkan program pengundian yang melaluinya keputusan undian dipaparkan tanpa memuat semula halaman web.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>PHP中文网(php.cn)</title> <script> function getVote(int) { 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("poll").innerHTML=xmlhttp.responseText; } } xmlhttp.open("GET","poll_vote.php?vote="+int,true); xmlhttp.send(); } </script> </head> <body> <div id="poll"> <h3>你喜欢 PHP 和 AJAX 吗?</h3> <form> 是: <input type="radio" name="vote" value="0" onclick="getVote(this.value)"> <br>否: <input type="radio" name="vote" value="1" onclick="getVote(this.value)"> </form> </div> </body> </html>
Apabila pengguna memilih salah satu daripada pilihan di atas, fungsi bernama "getVote()" akan dilaksanakan. Fungsi ini dicetuskan oleh peristiwa "onclick". Fungsi
getVote() melakukan langkah berikut:
· Cipta objek XMLHttpRequest
· Cipta fungsi yang dilaksanakan apabila respons pelayan sedia
· Hantar mesej ke pelayan Permintaan hantar fail pada
· Sila ambil perhatian parameter (q) yang ditambahkan pada penghujung URL (mengandungi kandungan senarai juntai bawah)
Fail PHP
Halaman pelayan yang dipanggil di atas melalui JavaScript ialah fail PHP bernama "poll_vote.php":
rreeeApabila nilai yang dipilih dihantar daripada JavaScript ke fail PHP, Apa yang akan berlaku:
1 Dapatkan kandungan fail "poll_result.txt"
2 dan tambah 1 pada pembolehubah yang dipilih
3 Tulis keputusan pada fail "poll_result.txt"
4. >
fail teksData daripada program pengundian disimpan dalam fail teks (poll_result.txt). Data yang disimpannya adalah seperti berikut:
5||3
NotaNombor pertama mewakili The bilangan undian untuk "Ya", nombor kedua mewakili bilangan undian untuk "Tidak".
: Ingat untuk hanya membenarkan pelayan web anda mengedit fail teks ini. Jangan biarkan orang lain mendapat akses kecuali pelayan web (PHP).