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" Îļþ
- Êä³öͼÐλ¯µÄͶƱ½á¹û