سبد (0)

تبلیغات

سیستم نظرسنجی در ajax

سیستم نظرسنجی با استفاده از AJAX

Wiki

مثال زیر، یک سیستم نظر سنجی را نشان می دهد که نتیجه آن بدون بارگذاری مجدد صفحه نمایش داده می شود:

مثال (سیستم نظرسنجی در ajax)

آیا تا اینجا به PHP و AJAX علاقه مند شده اید؟

بله: 
خیر:

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

Wiki

زمانی که کاربر، یکی از آیتم های مثال بالا را انتخاب می کند، تابع "()getVote" فراخوانی و اجرا می شود. این تابع توسط رویداد "onclick" راه اندازی می شود:

<html>
<head>
<script>
function getVote(int)
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for 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>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 ایجاد می شود.
  • زمانی که پاسخ سرور آماده باشد، یک تابع ایجاد و اجرا می شود. (وظیفه این تابع این است که پاسخ دریافت شده از سرور را در عنصر با شناسه "poll" قرار دهد)
  • درخواست یک فایل به سرور ارسال می شود.
  • توجه داشته باشید که یک پارامتر (vote) به URL اضافه شده است (با محتوای گزینه انتخاب شده)

توضیح مثال - فایل PHP

Wiki

فایلی که توسط کد 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 به فایل PHP ارسال می شود، کارهای زیر اتفاق می افتد:

  1. محتوای فایل "poll_result.txt" خوانده می شود.
  2. با استفاده از تابع ()explode، محتوای فایل "poll_result.txt" که شامل یک رشته مثل (20||50) است را در یک آرایه ذخیره می کنیم، سلول اول شامل تعداد رأی های "آری" و سلول دوم تعداد "خیرها" را نشان می دهد.
  3. براساس انتخاب کاربر، یک واحد به تعداد آراء اضافه می شود.
  4. نتیجه در فایل "poll_result.txt" نوشته می شود.
  5. نتیجه نظرسنجی بصورت گرافیکی ایجاد می شود.

فایل متنی poll_result.txt

Wiki

فایل "poll_result.txt" جایی است که نتیجه نظرسنجی در آن ذخیره می شود.

فایل "poll_result.txt"، می تواند شامل رشته زیر باشد:

0||0

عدد اول نشان دهنده ی رأی "مثب" و عدد دوم رأی "منفی" را نشان می دهد.

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


برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

دیدگاه‌ها  

+3 # mohsen moardi 1393-11-28 12:27
سلام...ميخواستم بدونم سيستم نوشتن ديدگاه كه تو سايت خودتونه چطور كار ميكنه؟البته منظورم فقط چگونگي ذخيره نظرات و پاسخ به نظراته.اينكه پيام هر فرد بعد از تاييد مديريت تو سايت نمايش داده بشه خيلي سخت نيست اما اينكه با زدن دكمه ي (پاسخ دادن) پاسخ اون نظر دقيقا زير همون نظر بياد يكم پيچيدست...براي طراحي اين سيستم بايد زبان ديگه اي جدا از php يادبگيريم؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # امیر پهلوان صادق 1393-11-28 13:44
ُسلام، برای پیاده سازی قسمت پاسخ دهی که بصورت درختی نمایش داده می شود، فقط کافی است در جدول مربوط به "دیدگاه ها" یک فیلد با عنوان "parent" در نظر بگیرد ...
در این صورت زمانی که کاربر، روی لینک "پاسخ دادن" کلیک می کند، به صورت اتوماتیک شماره ID دیدگاهی که می خواهد روی آن پاسخ دهد همراه بقیه داده ها به سرور ارسال شده و در فیلد parent قرار می گیرد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # amireza 1393-11-22 19:38
واقعا خیلی خوبه
ممنون
اگه میشه آموزش ساخت کد کپجا رو هم بدید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی PHP

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه پرداخت آنلاین - بانک اقتصاد نوین پرداخت آنلاین - بانک سامان
 
دوره های آموزشی راه اندازی کسب و کارهای اینترنتی
تبلیغات اینترنتی