简单投票系统学到的一些东西
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="jquery-1.11.2.min.js"></script>
<title>无标题文档</title>
</head>
<body>
<div id="z">
<?php
include("DBDA.class.php");
$db = new DBDA();
$sql="select * from toupiao";
$attr=$db->Query($sql);
for($i=0;$i<count($attr);$i++) //通过循环输出要投票的内容
{
echo "<div><input type='checkbox' class='a' value='{$attr[$i][0]}' />{$attr[$i][1]}</div>";
}
?>
<input type="button" value="提交" id="b" /><input type="button" value="查看" id="c" />
</div>
<div id="zz" style="display:none">
</div>
<input type="button" value="返回" id="y" style="display:none" />
</body>
<script type="text/javascript">
$(document).ready(function(e) {
$("#b").click(function(){
var att=new Array(); //建立一个数组
$(".a").each(function(){ //each循环遍历a
if($(this).prop("checked")) //判断被循环的这一条是否被选中
{
att.push($(this).val()); //把被选中的数据添加到数组
}
});
var str=att.join(","); //把数组以','拼接为字符串传输
$.ajax({
async:false,
url:"./chuli.php",
data:{str:str},
dataType:"TEXT",
type:"POST",
success: function(data)
{
}
});
})
$("#c").click(function(){
$("#z").css("display","none");
$("#zz").css("display","block");
$("#y").css("display","block");
$.ajax({
async:false,
url:"./chaxun.php",
dataType:"TEXT",
type:"POST",
success: function(data)
{
var c = data.split("|"); //拆分成一个一维数组
var e = 0;
var aa = "";
for(var i=0;i<c.length;i++)
{
var d = c[i].split("^"); //循环拆分成更小的数组
e=e+parseInt(d[2]); //把票数相加,获得总票数
}
var e=e;
var ee = 0;
for(var i=0;i<c.length;i++)
{
var d = c[i].split("^");
ee = Math.round(parseInt(d[2])/e*10000); <!--用单票数除以总票数得到百分比-->
var r = ee/100; <!--上一步乘以10000舍掉小数后,这一步再除以100,获得小数后2位-->
var aa=aa+"<div>"+d[1]+"<div style='width:100px; height:5px; border:1px solid #000; margin-left:50px; margin-top:-10px;'><div style='width:"+r+"%; height:5px; background-color:#6FF'></div><div style='margin-left:120px; margin-top:-15px;'>"+r+"%</div></div></div>";
}
$("#zz").eq(0).html(aa);
}
});
});
$("#y").click(function(){
$("#zz").css("display","none");
$("#y").css("display","none");
$("#z").css("display","block");
});
});
</script>
</html>
<?php include("DBDA.class.php"); $db = new DBDA(); $sql="select * from toupiao"; echo $db->StrQuery($sql);
<?php include("DBDA.class.php"); $db = new DBDA(); $str = $_POST["str"]; $sql="update toupiao set piao=piao+1 where id in($str)"; //这里学到了一个方便的方法,因为是以 ',' 来分割的字符串,所以可以直接拿到sql语句中使用,而不需要再使用循环,添加的话,拼接时用 ',' 拼接,就可以直接使用 //另外,如果要向数据库中的数字添加的话,可以直接用update修改,让要添加的列名=列名+要加的数量,就可以省去查找在修改的麻烦 $db->Query($sql,0);
再用ajax传值时可以根据是添加或是查询来使用 ',' 来拼接,这样就可以拿来直接使用
如果要向数据库中的数字添加的话,可以直接用update修改,让要添加的列名=列名+要加的数量,就可以省去查找在修改的麻烦
获得小数后两位的方法:
var ee = Math.round(parseInt(d[2])/e*10000);
var r = ee/100;
parseInt(字符串) 把字符串转换成数字
Math.round() 四舍五入得到完整数字

浙公网安备 33010602011771号