PHP+AJAX實(shí)現(xiàn)投****功能方法及源碼示例
今天給大家分享一個關(guān)于PHP開發(fā)之AJAX投****源碼示例,首先在下面的實(shí)例中,我們將演示一個投****程序,通過它,投****結(jié)果在網(wǎng)頁不進(jìn)行刷新的情況下被顯示。
實(shí)例解釋-HTML頁面
當(dāng)用戶選擇上面的某個選項(xiàng)時,會執(zhí)行名為"getVote()"的函數(shù)。該函數(shù)由"onclick"事件觸發(fā)。
poll.html文件代碼如下:
<html>
<head>
<metacharset="utf-8">
<title>php中文網(wǎng)(php.cn)</title>
<script>
functiongetVote(int){
if(window.XMLHttpRequest){
//IE7+,Firefox,Chrome,Opera,Safari執(zhí)行代碼
xmlhttp=newXMLHttpRequest();
}else{
//IE6,IE5執(zhí)行代碼
xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById("poll").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","poll_vote.php?vote="+int,true);
xmlhttp.send();
}
</script>
</head>
<body>
<divid="poll">
<h3>你喜歡PHP和AJAX嗎?</h3>
<form>
是:
<inputtype="radio"name="vote"value="0"onclick="getVote(this.value)">
<br>否:
<inputtype="radio"name="vote"value="1"onclick="getVote(this.value)">
</form>
</div>
</body>
</html>
getVote()函數(shù)會執(zhí)行以下步驟:
創(chuàng)建XMLHttpRequest對象
創(chuàng)建在服務(wù)器響應(yīng)就緒時執(zhí)行的函數(shù)
向服務(wù)器上的文件發(fā)送請求
請注意添加到URL末端的參數(shù)(q)(包含下拉列表的內(nèi)容)
PHP文件
上面這段通過JavaScript調(diào)用的服務(wù)器頁面是名為"poll_vote.php"的PHP文件:
<?php
$vote=htmlspecialchars($_REQUEST['vote']);
//獲取文件中存儲的數(shù)據(jù)
$filename="poll_result.txt";
$content=file($filename);
//將數(shù)據(jù)分割到數(shù)組中
$array=explode("||",$content[0]);
$yes=$array[0];
$no=$array[1];
if($vote==0)
{
$yes=$yes+1;
}
if($vote==1)
{
$no=$no+1;
}
//插入投****數(shù)據(jù)
$insertvote=$yes."||".$no;
$fp=fopen($filename,"w");
fputs($fp,$insertvote);
fclose($fp);
?>
<h2>結(jié)果:</h2>
<table>
<tr>
<td>是:</td>
<td>
<spanstyle="display:inline-block;background-color:green;
width:<?phpecho(100*round($yes/($no+$yes),2));?>px;
height:20px;"></span>
<?phpecho(100*round($yes/($no+$yes),2));?>%
</td>
</tr>
<tr>
<td>否:</td>
<td>
<spanstyle="display:inline-block;background-color:red;
width:<?phpecho(100*round($no/($no+$yes),2));?>px;
height:20px;"></span>
<?phpecho(100*round($no/($no+$yes),2));?>%
</td>
</tr>
</table>
當(dāng)所選的值從JavaScript發(fā)送到PHP文件時,將發(fā)生:
獲取"poll_result.txt"文件的內(nèi)容
把文件內(nèi)容放入變量,并向被選變量累加1
把結(jié)果寫入"poll_result.txt"文件
輸出圖形化的投****結(jié)果
文本文件(poll_result.txt)中存儲來自投****程序的數(shù)據(jù)。
它存儲的數(shù)據(jù)如下所示:
3||4
第一個數(shù)字表示"Yes"的投****數(shù),第二個數(shù)字表示"No"的投****數(shù)。
注釋:請記得只允許您的Web服務(wù)器來編輯該文本文件。不要讓其他人獲得訪問權(quán),除了Web服務(wù)器(PHP)。
以上就是關(guān)于PHP+AJAX實(shí)現(xiàn)投****功能方法及源碼示例的詳細(xì)介紹最后想要了解更多關(guān)于PHP開發(fā)發(fā)展前景趨勢,請關(guān)注扣丁學(xué)堂官網(wǎng)、微信等平臺,扣丁學(xué)堂PHP培訓(xùn)IT職業(yè)在線學(xué)習(xí)教育平臺為您提供權(quán)威的PHP視頻教程系統(tǒng),通過千鋒扣丁學(xué)堂金牌講師在線錄制的一套PHP視頻教程課程,讓你快速掌握PHP從入門到精通開發(fā)實(shí)戰(zhàn)技能??鄱W(xué)堂PHP技術(shù)交流群:374332265。
*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點(diǎn),如有侵權(quán)請聯(lián)系工作人員刪除。