PHP AJAX so‘rovnoma


ULASHISH

AJAX so‘rovi

Quyidagi misolda natija qayta yuklanmasdan ko‘rsatiladigan so‘rovnoma ko‘rsatiladi.

Sizga hozirgacha PHP va AJAX yoqadimi?

Yes:
No:

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:

  1. "poll_result.txt" faylining mazmunini oling
  2. Fayl tarkibini o‘zgaruvchilarga qo‘ying va tanlangan o‘zgaruvchiga bittasini qo‘shing
  3. Natijani "poll_result.txt" fayliga yozing
  4. 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!