PHP contoh AJAX Vote
AJAX Vote
Dalam contoh berikut, kita akan menunjukkan prosedur voting melalui hasil pemungutan suara akan ditampilkan dalam kasus di mana halaman tidak refresh.
Apakah Anda seperti PHP dan AJAX lakukan?
Contoh menjelaskan - Halaman HTML
Ketika pengguna memilih opsi di atas untuk mengeksekusi bernama "getVote ()" fungsi. Fungsi ini dipicu oleh peristiwa "onclick".
file kode poll.html adalah sebagai berikut:
<html> <head> <meta charset="utf-8"> <title>本教程(w3big.com)</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>
getVote () fungsi melakukan langkah-langkah berikut:
- Buat XMLHttpRequest objek
- Membuat fungsi ketika server siap untuk melakukan respon
- Berkas pada server untuk mengirim permintaan
- Harap perhatikan ditambahkan ke akhir dari parameter URL (q) (berisi isi dari daftar drop-down)
file PHP
Atas halaman server ini disebut oleh JavaScript yang disebut "poll_vote.php" file PHP:
<?php $vote = htmlspecialchars($_REQUEST['vote']); // 获取文件中存储的数据 $filename = "poll_result.txt"; $content = file($filename); // 将数据分割到数组中 $array = explode("||", $content[0]); $yes = $array[0]; $no = $array[1]; if ($vote == 0) { $yes = $yes + 1; } if ($vote == 1) { $no = $no + 1; } // 插入投票数据 $insertvote = $yes."||".$no; $fp = fopen($filename,"w"); fputs($fp,$insertvote); fclose($fp); ?> <h2>结果:</h2> <table> <tr> <td>是:</td> <td> <span style="display: inline-block; background-color:green; width:<?php echo(100*round($yes/($no+$yes),2)); ?>px; height:20px;" ></span> <?php echo(100*round($yes/($no+$yes),2)); ?>% </td> </tr> <tr> <td>否:</td> <td> <span style="display: inline-block; background-color:red; width:<?php echo(100*round($no/($no+$yes),2)); ?>px; height:20px;"></span> <?php echo(100*round($no/($no+$yes),2)); ?>% </td> </tr> </table>
Ketika nilai yang dipilih dikirimkan dari JavaScript ke file PHP akan terjadi:
- Dapatkan Konten "poll_result.txt" file
- Isi dari file ke dalam variabel, variabel yang dipilih untuk bertambah 1
- Menulis "poll_result.txt" File Hasil
- output grafis dari hasil jajak pendapat
file teks
Text File (poll_result.txt) menyimpan data dari prosedur pemungutan suara.
Menyimpan data sebagai berikut:
3||4
Nomor pertama menunjukkan "Ya" penghitungan suara, dan angka kedua merupakan "Tidak" penghitungan suara.
Catatan: Ingatlah untuk hanya memungkinkan server Web Anda untuk mengedit file teks.Jangan biarkan orang lain mendapatkan akses, selain server Web (PHP).