PHP開發(fā)簡單投票系統(tǒng)之投票頁面功能模塊(二)
當(dāng)完成前面的投票后,可以選擇點擊查看結(jié)果查看每個項目的總票數(shù)和所有項目的投票百分比。
點擊“查看結(jié)果”后程序會自動計算每個項目的票數(shù)和所占百分比。
使用了<input type="hidden">隱藏表單屬性
<input type="hidden">?隱藏域在頁面中對于用戶是不可見的,在表單中插入隱藏域的目的在于收集或發(fā)送信息,以利于被處理表單的程序所使用。瀏覽者單擊發(fā)送按鈕發(fā)送表單的時候,隱藏域的信息也被一起發(fā)送到服務(wù)器。
hidden 屬性也可用于防止用戶查看元素,直到匹配某些條件(比如選擇了某個復(fù)選框)。然后,JavaScript 可以刪除 hidden 屬性,以使此元素可見。
<input type="hidden" id="selected_id" name="selected_id" value=""> <input type="button" value="查看結(jié)果" onClick="location.href='index.php?id=ck'"/> <script type="text/javascript"> $("[type='radio']").click(function(){ $("#selected_id").val($(this).val()); }); </script>
自動計算添加票數(shù)并session操作判斷:
<?php $id=$_POST["itm"]; $SQL="UPDATE vote SET count=count+1 WHERE id=$id"; //自動添加投票數(shù) if(mysqli_query($link,$sql)) { $_SESSION["vote"]=session_id(); ?> <script language="javascript">alert("投票成功,點確定查看結(jié)果");location.href="index.php?id=ck";</script> <?php } else { ?> <script language="javascript">alert("投票失敗");location.href="index.php";</script> <?php } ?>
隱藏的<table>表格中計算投票項目百分比
先計算總的票數(shù),投票的票數(shù)信息會保存在數(shù)據(jù)庫中,通過sum() 函數(shù)返回數(shù)值列的總數(shù)
<?php if(isset($_GET["id"])=="ck"){ ?> <?php $SQL="SELECT sum(count) as 'total' FROM vote"; $rs=mysqli_query($link,$sql); $rows=mysqli_fetch_assoc($rs); $sum=$rows["total"]; //得出總票數(shù) } ?>
然后循環(huán)輸出各個投票項目并計算百分比, 通過SQL語句SELECT查詢出數(shù)據(jù)庫表中每一項投票內(nèi)容的投票數(shù),再除以總票數(shù)。
<?php $SQL="SELECT * FROM vote"; $rs=mysqli_query($link,$sql); while($rows=mysqli_fetch_assoc($rs)) { ?> <tr> <td bgcolor="#FFFFFF"><?php echo $rows["item"]?></td> <td bgcolor="#FFFFFF"><?php echo $rows["count"]?></td> <td bgcolor="#FFFFFF"> <?php $per=$rows["count"]/$sum; $per=number_format($per,4); ?> <img src="" height="4" width="<?php echo $per*100?>" /> <?php echo $per*100?>% </td> </tr> <?php } ?>