PHP المثال أجاكس أصوات
أجاكس أصوات
في الأمثلة التالية، سوف نظهر إجراء التصويت الذي يتم من خلاله عرض نتائج التصويت في حالة ما إذا كانت الصفحة لا تحديثها.
هل مثل PHP و AJAX تفعل؟
أمثلة توضح - صفحة HTML
عندما يقوم المستخدم بتحديد خيار أعلاه للتنفيذ يدعى "getVote) (" وظيفة. يتم تشغيل هذه الوظيفة عن طريق الحدث "عند_النقر".
كود ملف poll.html على النحو التالي:
<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 () تنفيذ الخطوات التالية:
- إنشاء كائن مدعوم
- إنشاء وظيفة عندما يكون الملقم جاهز لأداء استجابة
- ملف على الملقم لإرسال الطلبات
- يرجى ملاحظة تضاف إلى نهاية معلمة URL (ف) (يحتوي على محتويات القائمة المنسدلة)
ملف PHP
أعلى الصفحة هذا الملقم التي دعت إليها جافا سكريبت يسمى "poll_vote.php" ملفات 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>
عندما يتم إرسال القيمة المحددة من جافا سكريبت لملف PHP سوف يحدث:
- الحصول على المحتوى ملف "poll_result.txt"
- محتويات الملف إلى متغير والمتغير اختار أن يكون بمقدار 1
- يكتب "poll_result.txt" نتائج الملف
- انتاج رسومية من نتائج الاستطلاع
ملف نصي
ملف نصي (poll_result.txt) تخزين البيانات من إجراء التصويت.
لأنه يخزن البيانات على النحو التالي:
3||4
يشير الرقم الأول "نعم" فرز الأصوات، ويمثل الرقم الثاني في "لا" فرز الاصوات.
ملاحظة: تذكر أن تسمح فقط ملقم ويب لتحرير ملف نصي.لا تدع الآخرين الحصول على الوصول إليها، بالإضافة إلى خادم الويب (PHP).