PHP – نظرسنجی با AJAX
آخرین بروزرسانی:
این مثال نشان میدهد که چگونه میتوانید با استفاده از AJAX و PHP، یک نظرسنجی ساده را پیادهسازی کنید که نتایج آن بدون بارگذاری مجدد صفحه نمایش داده میشود.
صفحه HTML
هنگامی که کاربر یک گزینه را انتخاب میکند، تابع getVote()
اجرا میشود. این تابع با استفاده از AJAX رأی کاربر را به سرور ارسال کرده و نتایج نظرسنجی را بهروزرسانی میکند.
<html>
<head>
<script>
function getVote(int) {
var xmlhttp = new XMLHttpRequest(); // ایجاد شی XMLHttpRequest
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("poll").innerHTML = this.responseText; // بهروزرسانی محتویات عنصر با ID "poll"
}
}
xmlhttp.open("GET", "poll_vote.php?vote=" + int, true); // ارسال درخواست GET به فایل PHP
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>
فایل PHP (poll_vote.php)
فایل PHP که از طرف JavaScript فراخوانی میشود، رأی کاربر را دریافت کرده و نتایج نظرسنجی را بهروزرسانی میکند:
<?php
$vote = $_REQUEST['vote']; // دریافت رأی از URL
// دریافت محتوای فایل متنی
$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><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>خیر:</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>
فایل متنی (poll_result.txt)
فایل متنی که دادههای نظرسنجی را ذخیره میکند به شکل زیر است:
0||0
عدد اول نمایانگر تعداد رأیهای “بله” و عدد دوم نمایانگر تعداد رأیهای “خیر” است.
توجه: اطمینان حاصل کنید که وبسرور شما اجازه ویرایش این فایل متنی را دارد. فقط به وبسرور (PHP) اجازه دسترسی بدهید و به هیچکس دیگری اجازه ندهید.
برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید. صفحه ورود و ثبت نام