简单投票系统学到的一些东西

<!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>
View Code
<?php
include("DBDA.class.php");
$db = new DBDA();
$sql="select * from toupiao";
echo $db->StrQuery($sql);
View Code
<?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);
View Code

再用ajax传值时可以根据是添加或是查询来使用 ',' 来拼接,这样就可以拿来直接使用

如果要向数据库中的数字添加的话,可以直接用update修改,让要添加的列名=列名+要加的数量,就可以省去查找在修改的麻烦

获得小数后两位的方法:

var ee = Math.round(parseInt(d[2])/e*10000);  
var r = ee/100;   

parseInt(字符串)  把字符串转换成数字

Math.round()  四舍五入得到完整数字

 

posted @ 2016-11-02 16:20  哔哩哔哩干杯  阅读(158)  评论(0编辑  收藏  举报