PHP ºÍ AJAX ͶƱ
AJAX ͶƱ
ÔÚÕâ¸ö AJAX ʵÀýÖУ¬ÎÒÃǽ«ÑÝʾһ¸öͶƱ³ÌÐò£¬ÍøÒ³ÔÚ²»ÖØÐ¼ÓÔØµÄÇé¿öÏ£¬¾Í¿ÉÒÔ»ñµÃ½á¹û¡£
µ½Ä¿Ç°ÎªÖ¹£¬Äúϲ»¶ PHP ºÍ AJXA Âð£¿
±¾Àý°üÀ¨ËĸöÔªËØ£º
- 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" ʱ£¬¸Ãº¯Êý¾Í»áÖ´ÐС£
- ¶¨Òå·¢Ë͵½·þÎñÆ÷µÄ url £¨ÎļþÃû£©
- Ïò url Ìí¼Ó²ÎÊý (vote)£¬²ÎÊýÖдøÓÐÊäÈë×ֶεÄÄÚÈÝ
- Ìí¼ÓÒ»¸öËæ»úÊý£¬ÒÔ·ÀÖ¹·þÎñÆ÷ʹÓûº´æµÄÎļþ
- µ÷Óà GetXmlHttpObject º¯ÊýÀ´´´½¨ XMLHTTP ¶ÔÏ󣬲¢¸æÖª¸Ã¶ÔÏóµ±´¥·¢Ò»¸ö±ä»¯Ê±Ö´ÐÐ stateChanged º¯Êý
- Óøø¶¨µÄ url À´´ò¿ª XMLHTTP ¶ÔÏó
- Ïò·þÎñÆ÷·¢ËÍ 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 ´«À´£¬È»ºó»á·¢Éú£º
- »ñÈ¡ "poll_result.txt" ÎļþµÄÄÚÈÝ
- °ÑÎļþÄÚÈÝ·ÅÈë±äÁ¿£¬²¢Ïò±»Ñ¡±äÁ¿ÀÛ¼Ó 1
- °Ñ½á¹ûдÈë "poll_result.txt" Îļþ
- Êä³öͼÐλ¯µÄͶƱ½á¹û