مثال PHP - استطلاع أجاكس
استطلاع أجاكس
سيوضح المثال التالي استطلاعًا حيث يتم عرض النتيجة دون إعادة التحميل.
هل تعجبك PHP و AJAX حتى الآن؟
شرح المثال - صفحة HTML
عندما يختار المستخدم خيارًا أعلاه ، يتم تنفيذ وظيفة تسمى "getVote ()". يتم تشغيل الوظيفة بواسطة حدث "onclick":
<html>
<head>
<script>
function getVote(int)
{
var xmlhttp=new XMLHttpRequest();
xmlhttp.onreadystatechange=function() {
if (this.readyState==4 && this.status==200) {
document.getElementById("poll").innerHTML=this.responseText;
}
}
xmlhttp.open("GET","poll_vote.php?vote="+int,true);
xmlhttp.send();
}
</script>
</head>
<body>
<div id="poll">
<h3>Do you like PHP and AJAX so far?</h3>
<form>
Yes:
<input type="radio" name="vote"
value="0" onclick="getVote(this.value)"><br>
No:
<input type="radio" name="vote"
value="1" onclick="getVote(this.value)">
</form>
</div>
</body>
</html>
تقوم وظيفة getVote () بما يلي:
- قم بإنشاء كائن XMLHttpRequest
- قم بإنشاء الوظيفة التي سيتم تنفيذها عندما تكون استجابة الخادم جاهزة
- أرسل الطلب إلى ملف موجود على الخادم
- لاحظ أنه تمت إضافة معلمة (تصويت) إلى عنوان URL (بقيمة الخيار نعم أو لا)
ملف PHP
الصفحة الموجودة على الخادم التي تم استدعاؤها بواسطة JavaScript أعلاه هي ملف PHP يسمى "poll_vote.php":
<?php
$vote = $_REQUEST['vote'];
//get content of textfile
$filename = "poll_result.txt";
$content = file($filename);
//put content in array
$array = explode("||", $content[0]);
$yes = $array[0];
$no = $array[1];
if ($vote == 0) {
$yes = $yes + 1;
}
if ($vote == 1) {
$no = $no + 1;
}
//insert votes to txt file
$insertvote = $yes."||".$no;
$fp = fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
?>
<h2>Result:</h2>
<table>
<tr>
<td>Yes:</td>
<td><img src="poll.gif"
width='<?php echo(100*round($yes/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($yes/($no+$yes),2)); ?>%
</td>
</tr>
<tr>
<td>No:</td>
<td><img src="poll.gif"
width='<?php echo(100*round($no/($no+$yes),2)); ?>'
height='20'>
<?php echo(100*round($no/($no+$yes),2)); ?>%
</td>
</tr>
</table>
يتم إرسال القيمة من JavaScript ، ويحدث ما يلي:
- احصل على محتوى ملف "poll_result.txt"
- ضع محتوى الملف في متغيرات وأضف واحدًا إلى المتغير المحدد
- اكتب النتيجة في ملف "poll_result.txt"
- إخراج تمثيل رسومي لنتائج الاستطلاع
ملف نصي
الملف النصي (poll_result.txt) هو المكان الذي نخزن فيه البيانات من الاستطلاع.
يتم تخزينه على النحو التالي:
0||0
يمثل الرقم الأول أصوات "نعم" ، بينما يمثل الرقم الثاني أصوات "لا".
ملاحظة: تذكر السماح لخادم الويب الخاص بك بتحرير الملف النصي. لا تمنح الجميع حق الوصول ، فقط خادم الويب (PHP).