PHP ºÍ AJAX ͶƱ

AJAX ͶƱ

ÔÚÕâ¸ö AJAX ʵÀýÖУ¬ÎÒÃǽ«ÑÝʾһ¸öͶƱ³ÌÐò£¬ÍøÒ³ÔÚ²»ÖØÐ¼ÓÔØµÄÇé¿öÏ£¬¾Í¿ÉÒÔ»ñµÃ½á¹û¡£

µ½Ä¿Ç°ÎªÖ¹£¬Äúϲ»¶ PHP ºÍ AJXA Âð£¿

Yes:
No:

±¾Àý°üÀ¨ËĸöÔªËØ£º

  • HTML ±íµ¥
  • JavaScript
  • PHP Ò³Ãæ
  • ´æ·Å½á¹ûµÄÎı¾Îļþ

HTML ±íµ¥

ÕâÊÇ HTML Ò³Ãæ¡£Ëü°üº¬Ò»¸ö¼òµ¥µÄ HTML ±íµ¥£¬ÒÔ¼°Ò»¸öÓë JavaScript ÎļþµÄÁ¬½Ó£º

<html>
<head>
<script src="poll.js"></script> 
</head>
<body>

<div id="poll">
<h2>Do you like PHP and AJAX so far?</h2>

<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>

Àý×Ó½âÊÍ - HTML ±íµ¥

ÕýÈçÄú¿´µ½µÄ£¬ÉÏÃæµÄ HTML Ò³Ãæ°üº¬Ò»¸ö¼òµ¥µÄ HTML ±íµ¥£¬ÆäÖÐµÄ <div> ÔªËØ´øÓÐÁ½¸öµ¥Ñ¡°´Å¥¡£

±íµ¥ÕâÑù¹¤×÷£º

  • µ±Óû§Ñ¡Ôñ "yes" »ò "no" ʱ£¬»á´¥·¢Ò»¸öʼþ
  • µ±Ê¼þ´¥·¢Ê±£¬Ö´ÐÐ getVote() º¯Êý
  • Î§ÈÆ¸Ã±íµ¥µÄÊÇÃûΪ "poll" µÄ <div>¡£µ±Êý¾Ý´Ó getVote() º¯Êý·µ»ØÊ±£¬·µ»ØµÄÊý¾Ý»áÌæ´ú¸Ã±íµ¥¡£

Îı¾Îļþ

Îı¾Îļþ (poll_result.txt) Öд洢À´×ÔͶƱ³ÌÐòµÄÊý¾Ý¡£

ËüÀàËÆÕâÑù£º

0||0

µÚÒ»¸öÊý×Ö±íʾ "Yes" ͶƱ£¬µÚ¶þ¸öÊý×Ö±íʾ "No" ͶƱ¡£

×¢ÊÍ£º¼ÇµÃÖ»ÔÊÐíÄúµÄ web ·þÎñÆ÷À´±à¼­¸ÃÎı¾Îļþ¡£²»ÒªÈÃÆäËûÈË»ñµÃ·ÃÎÊȨ£¬³ýÁË web ·þÎñÆ÷ (PHP)¡£

JavaScript

JavaScript ´úÂë´æ´¢ÔÚ "poll.js" ÖУ¬²¢ÓÚ HTML ÎĵµÏàÁ¬½Ó£º

var xmlHttp

function getVote(int)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
 {
 alert ("Browser does not support HTTP Request")
 return
 } 
var url="poll_vote.php"
url=url+"?vote="+int
url=url+"&sid="+Math.random()
xmlHttp.onreadystatechange=stateChanged 
xmlHttp.open("GET",url,true)
xmlHttp.send(null)
} 

function stateChanged() 
{ 
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
 { 
 document.getElementById("poll").
 innerHTML=xmlHttp.responseText;
 } 
} 

function GetXmlHttpObject()
{ 
var objXMLHttp=null
if (window.XMLHttpRequest)
 {
 objXMLHttp=new XMLHttpRequest()
 }
else if (window.ActiveXObject)
 {
 objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
 }
return objXMLHttp
}

Àý×Ó½âÊÍ£º

stateChanged() ºÍ GetXmlHttpObject º¯ÊýÓë PHP ºÍ AJAX ÇëÇó ÕâÒ»½ÚÖеÄÀý×ÓÏàͬ¡£

getVote() º¯Êý

µ±Óû§ÔÚ HTML ±íµ¥ÖÐÑ¡Ôñ "yes" »ò "no" ʱ£¬¸Ãº¯Êý¾Í»áÖ´ÐС£

  1. ¶¨Òå·¢Ë͵½·þÎñÆ÷µÄ url £¨ÎļþÃû£©
  2. Ïò url Ìí¼Ó²ÎÊý (vote)£¬²ÎÊýÖдøÓÐÊäÈë×ֶεÄÄÚÈÝ
  3. Ìí¼ÓÒ»¸öËæ»úÊý£¬ÒÔ·ÀÖ¹·þÎñÆ÷ʹÓûº´æµÄÎļþ
  4. µ÷Óà GetXmlHttpObject º¯ÊýÀ´´´½¨ XMLHTTP ¶ÔÏ󣬲¢¸æÖª¸Ã¶ÔÏóµ±´¥·¢Ò»¸ö±ä»¯Ê±Ö´ÐÐ stateChanged º¯Êý
  5. Óøø¶¨µÄ url À´´ò¿ª XMLHTTP ¶ÔÏó
  6. Ïò·þÎñÆ÷·¢ËÍ HTTP ÇëÇó

PHP Ò³Ãæ

ÓÉ JavaScript ´úÂëµ÷ÓõķþÎñÆ÷Ò³ÃæÊÇÃûΪ "poll_vote.php" µÄÒ»¸ö¼òµ¥µÄ 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 ´«À´£¬È»ºó»á·¢Éú£º

  1. »ñÈ¡ "poll_result.txt" ÎļþµÄÄÚÈÝ
  2. °ÑÎļþÄÚÈÝ·ÅÈë±äÁ¿£¬²¢Ïò±»Ñ¡±äÁ¿ÀÛ¼Ó 1
  3. °Ñ½á¹ûдÈë "poll_result.txt" Îļþ
  4. Êä³öͼÐλ¯µÄͶƱ½á¹û
VUE