W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
本節(jié)主要是要向你展示一個(gè)投票程序,講述了PHP+AJAX實(shí)現(xiàn)投票功能的方法,一起來(lái)看看!
在下面的實(shí)例中,我們將演示一個(gè)投票程序,通過(guò)它,投票結(jié)果在網(wǎng)頁(yè)不進(jìn)行刷新的情況下被顯示。
當(dāng)用戶選擇上面的某個(gè)選項(xiàng)時(shí),會(huì)執(zhí)行名為 "getVote()" 的函數(shù)。該函數(shù)由 "onclick" 事件觸發(fā):
<html>
<head>
<script>
function getVote(int)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("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>
<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>
getVote() 函數(shù)會(huì)執(zhí)行以下步驟:
上面這段通過(guò) JavaScript 調(diào)用的服務(wù)器頁(yè)面是名為 "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>
當(dāng)所選的值從 JavaScript 發(fā)送到 PHP 文件時(shí),將發(fā)生:
文本文件(poll_result.txt)中存儲(chǔ)來(lái)自投票程序的數(shù)據(jù)。
它存儲(chǔ)的數(shù)據(jù)如下所示:
第一個(gè)數(shù)字表示 "Yes" 的投票數(shù),第二個(gè)數(shù)字表示 "No" 的投票數(shù)。
注釋:請(qǐng)記得只允許您的 Web 服務(wù)器來(lái)編輯該文本文件。不要讓其他人獲得訪問(wèn)權(quán),除了 Web 服務(wù)器 (PHP)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: