مثال - نظرسنجی با AJAX

از ویکی‌کد
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Php-menu.png
موارد آموزشی
فرم‌ها در PHP
PHP پیشرفته
شیء گرایی در PHP
پایگاه داده MySQL
XML در PHP
AJAX در PHP
۱مقدمه‌ای بر AJAX
۲AJAX و PHP
۳AJAX و پایگاه داده
۴AJAX و XML
۵جستجوی دیداری AJAX
۶نظرسنجی با AJAX
مثال‌های PHP
مرجع PHP


نظرسنجی با AJAX

مثال زیر یک نظرسنجی را که نتایج آن بدون بارگذاری دوباره نمایش داده می‌شود را به شما توضیح می‌دهد.[۱]

Time2wait.svg ساخت نمونه مثال این بخش در دست اقدام است.


آیا شما تا این جا PHP و AJAX را دوست داشتید؟

توضیح مثال - صفحه HTML

زمانی که کاربر یک گزینه از گزینه‌های بالا را انتخاب می‌کند، تابعی به نام "getVote()" اجرا می‌شود. رویداد "onclick" موجب اجرای این تابع می‌شود:

 1 <html>
 2 <head>
 3 <script>
 4 function getVote(int) {
 5   if (window.XMLHttpRequest) {
 6     // code for IE7+, Firefox, Chrome, Opera, Safari
 7     xmlhttp=new XMLHttpRequest();
 8   } else {  // code for IE6, IE5
 9     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
10   }
11   xmlhttp.onreadystatechange=function() {
12     if (this.readyState==4 && this.status==200) {
13       document.getElementById("poll").innerHTML=this.responseText;
14     }
15   }
16   xmlhttp.open("GET","poll_vote.php?vote="+int,true);
17   xmlhttp.send();
18 }
19 </script>
20 </head>
21 <body>
22 
23 <div id="poll">
24 <h3>Do you like PHP and AJAX so far?</h3>
25 <form>
26 Yes:
27 <input type="radio" name="vote" value="0" onclick="getVote(this.value)">
28 <br>No:
29 <input type="radio" name="vote" value="1" onclick="getVote(this.value)">
30 </form>
31 </div>
32 
33 </body>
34 </html>

تابع "getVote()" مراحل زیر را انجام می‌دهد:

  • ساخت یک شیء XMLHttpRequest
  • ساخت تابعی که می‌بایست هنگامی که پاسخ سرور آماده است اجرا شود
  • ارسال درخواست به یک فایل روی سرور
  • توجه داشته باشید که یک پارامتر (vote) (با مقدار گزینه‌های بله یا خیر) به URL اضافه شده‌است

فایل PHP

صفحه ای که توسط کد جاوا اسکریپت بالا فراخوانی می‌شود یک فایل PHP به نام "poll_vote.php" است:

 1 <?php
 2 $vote = $_REQUEST['vote'];
 3 
 4 //get content of textfile
 5 $filename = "poll_result.txt";
 6 $content = file($filename);
 7 
 8 //put content in array
 9 $array = explode("||", $content[0]);
10 $yes = $array[0];
11 $no = $array[1];
12 
13 if ($vote == 0) {
14   $yes = $yes + 1;
15 }
16 if ($vote == 1) {
17   $no = $no + 1;
18 }
19 
20 //insert votes to txt file
21 $insertvote = $yes."||".$no;
22 $fp = fopen($filename,"w");
23 fputs($fp,$insertvote);
24 fclose($fp);
25 ?>
26 
27 <h2>Result:</h2>
28 <table>
29 <tr>
30 <td>Yes:</td>
31 <td>
32 <img src="poll.gif"
33 width='<?php echo(100*round($yes/($no+$yes),2)); ?>'
34 height='20'>
35 <?php echo(100*round($yes/($no+$yes),2)); ?>%
36 </td>
37 </tr>
38 <tr>
39 <td>No:</td>
40 <td>
41 <img src="poll.gif"
42 width='<?php echo(100*round($no/($no+$yes),2)); ?>'
43 height='20'>
44 <?php echo(100*round($no/($no+$yes),2)); ?>%
45 </td>
46 </tr>
47 </table>

مقدار از سوی جاوا اسکریپت ارسال می‌شود، و مراحل زیر اتفاق می‌افتد:

  1. دریافت محتوای فایل "poll_result.txt"
  2. قرار دادن محتوای فایل درون متغیرها و اضافه کردن یک به متغیر selected
  3. نوشتن نتیجه روی فایل "poll_result.txt"
  4. ارائه یک خروجی گرافیکی از نتیجه نظرسنجی

فایل متن

فایل متن (poll_result.txt) محلی است که ما اطلاعات از نظرسنجی را در آن ذخیره می‌کنیم.

این مقادیر به صورت زیر ذخیره می‌شود:

0||0

اولین عدد نشانگر رای‌های "Yes" است، دومین عدد نشانگر رای‌های "No" است.

نکته: به یاد داشته باشید که به وب سرور خود اجازه ویرایش فایل را بدهید. به هر چیزی دسترسی ندهید، فقط دسترسی را به وب‌سرور (PHP) بدهید.


منابع آموزشی