ejemplo PHP AJAX votar
Voto AJAX
En los siguientes ejemplos, vamos a demostrar un procedimiento de votación a través del cual los resultados de la votación se muestran en el caso de que la página no se actualiza.
¿Usted como PHP y AJAX hacen?
Ejemplos explican - página HTML
Cuando el usuario selecciona una opción anterior para ejecutar llamado "getVote) (" función. Esta función es activada por el evento "onclick".
código de archivo poll.html es el siguiente:
<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 función () realiza los siguientes pasos:
- Crear objeto XMLHttpRequest
- Crear función cuando el servidor está listo para llevar a cabo la respuesta
- Archivo en el servidor para enviar solicitudes
- Por favor note que se añade al final del parámetro de URL (q) (contiene el contenido de la lista desplegable)
PHP archivo
Por encima de esta página del servidor llamado por el código JavaScript se llama archivos PHP "poll_vote.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>
Cuando el valor seleccionado se envía desde JavaScript para archivo PHP que ocurrirá:
- Obtener archivo de contenido "poll_result.txt"
- El contenido del archivo en una variable, la variable seleccionada para ser incrementado en 1
- Escribe "poll_result.txt" File Results
- La salida gráfica de los resultados de la encuesta
archivo de texto
Archivo de texto (poll_result.txt) que almacena los datos en el procedimiento de votación.
Se almacena los datos como sigue:
3||4
El primer número indica "Sí" recuento de votos, y el segundo número representa el "No" recuento de votos.
Nota: Recuerde que sólo permitirá a su servidor Web para editar el archivo de texto.No dejequeotras personas tengan acceso, además de servidor Web (PHP).