简单投票系统学到的一些东西
<!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() 四舍五入得到完整数字