PHP AJAX so‘rovnoma
AJAX so‘rovi
Quyidagi misolda natija qayta yuklanmasdan ko‘rsatiladigan so‘rovnoma ko‘rsatiladi.
Sizga hozirgacha PHP va AJAX yoqadimi?
HTML sahifasi
Agar foydalanuvchi yuqoridagi variantni tanlasa, getVote() funksiyasi bajariladi. Funksiya onclick hodisasi tomonidan ishga tushiriladi:
<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>
Kod tushuntirish
getVote() funksiyasi quyidagilarni bajaradi:
- XMLHttpRequest obyektini yarating
- Server javobi tayyor bo‘lganda bajariladigan funksiyani yarating
- So‘rovni serverdagi faylga yuboring
- E’tibor bering, URL manziliga parametr (ovoz) qo‘shilgan (ha yoki yo‘q varianti qiymati bilan)
PHP fayli
Yuqoridagi JavaScript tomonidan chaqirilgan serverdagi sahifa "poll_vote.php" deb nomlangan PHP faylidir:
<?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>
Kod tushuntirish
Qiymat JavaScript-dan yuboriladi va quyidagilar sodir bo‘ladi:
- "poll_result.txt" faylining mazmunini oling
- Fayl tarkibini o‘zgaruvchilarga qo‘ying va tanlangan o‘zgaruvchiga bittasini qo‘shing
- Natijani "poll_result.txt" fayliga yozing
- So‘rov natijalarining grafik tasvirini chiqaring
Matn fayli
Matn fayli (poll_result.txt) biz so‘rovdan olingan ma’lumotlarni saqlaydigan joy.
U shunday saqlanadi:
0||0
Birinchi raqam "Ha" ovozini, ikkinchi raqam "Yo‘q" ovozini bildiradi.
Eslatma: Veb-serveringizga matnli faylni tahrirlashga ruxsat berishni unutmang. Hammaga ruxsat bermang, faqat veb-server (PHP).
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
