zoukankan      html  css  js  c++  java
  • 简单投票系统学到的一些东西

    <!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='100px; height:5px; border:1px solid #000; margin-left:50px; margin-top:-10px;'><div style='"+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()  四舍五入得到完整数字

  • 相关阅读:
    【Forza Horizon 5】频繁断网解决办法
    【Java】java.util.ConcurrentModificationException
    【MySQL】下发功能SQL
    【MybatisPlus】 Field '主键' doesn't have a default value
    【SpringBoot】数据源加密处理
    【VMware】将NAT虚拟机开放访问
    TreeView绑定数据库收藏
    存储过程概述
    asp.net页面直接输出纯xml
    如何保证远程登录服务器安全
  • 原文地址:https://www.cnblogs.com/bilibiliganbei/p/6023346.html
Copyright © 2011-2022 走看看