php结合mysql和jquery做简单的投票小程序

  首先在数据库中要有张表,字段为id,name(即投票的选项),count(各选项所投票的数量累计)。
具体思路:当选项被选中时,count+1,count的值作为div的长度显示在html页面中,可以嵌套两个div,外div长度固定,内div的长度设置为百分比,这样就可以显示百分比了。
具体代码如下:

HTML页面(包括js):

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>投票</title>
//引用jquery
<script type="text/javascript" src="../../jquery-3.2.1.min.js"></script>
//为当做统计条的div设置一下样式
<style>
.wai{
width: 100px;
height: 15px;
border: 1px solid red;
}
.nei{
width: 1%;
height: 15px;
background: red;
}
</style>

</head>

<body>

<h1>投票</h1>
<div id="show1"></div>
<div id="show2">
    <table></table>
</div>

<button onClick="tijiao()">提交</button>
</body>
</html>
<script>
var attr=[];
var sum=0;
ajax获取数据
$.ajax({
    async:true,
    url:‘untitled.php‘,  
    data:{type:‘select‘},
    type:‘post‘,
    dataType:‘text‘,
    success:function(data){
//把php返回的字符串转成二维数组
    strToArr(data);
    }
});
//方法:字符串转数组
function strToArr(str){
    var arr=str.split(‘^‘),
        brr=[],
        sum=0;
    for(var i in arr){
        brr.push(arr[i].split(‘,‘));
        sum+=+brr[i][2];
    }
    attr=brr;
    initHtml(sum);
}
//方法:将数据打印至HTML页面中(包括选项)
function initHtml(sum){
    var str=‘‘;
    for(var i in attr){
    str+=‘<input type="checkbox" data-id="‘+attr[i][0]+‘">‘+attr[i][1]+‘<br>‘;
    }
    $(‘#show1‘).html(str);
    str=‘‘;
    for(var i in attr){
        str+=`<tr>
            <td>`+attr[i][1]+`</td>
            <td>
                <div class="wai">
                    <div class="nei" style="width:`+((attr[i][2]/sum)*100).toFixed(2)+`%;"></div>
                 </div>
            </td>
            <td>`+attr[i][2]+`(`+((attr[i][2]/sum)*100).toFixed(2)+`%)</td>
        </tr>`;
    }
    $(‘#show2 table‘).html(str);
}
//提交按钮的方法
function tijiao(){
    var str=‘‘;
    $(‘input:checkbox:checked‘).each(function(){
        str+=$(this).attr(‘data-id‘)+‘,‘;
    })
    str=str.substring(0,str.length-1);
    $.ajax({
    async:true,  
    url:‘index.php‘,
    data:{type:‘insert‘,ids:str},
    type:‘post‘,  
    dataType:‘text‘,
    success:function(data){
//把php返回的字符串转成二维数组
    strToArr(data);
    }
});
}

</script>

php页面:

<?php

$db= new MySQLi(‘localhost‘,‘root‘,‘root‘,‘database‘);
!mysqli_connect_error() or die(‘连接失败‘);
$db->query(‘set names utf8‘);

$type=$_REQUEST[‘type‘];

switch($type){
    case ‘insert‘:
        $ids=$_POST[‘ids‘];
        $sql="update table set count= count+1 where id in ($ids) ";
        $db->query($sql);
    break;
    case ‘select‘:

        
    break;

}
        $sql="select * from table";
        $res=$db->query($sql);
        $attr=$res->fetch_all();

        // 数组转字符串
        $brr=array();
        foreach($attr as $v){
            $brr[]=implode(",",$v);
        }
        echo implode(‘^‘,$brr);


php结合mysql和jquery做简单的投票小程序

上一篇:小程序循环东西修改后显示


下一篇:微信----分享(第三方平台的授权分享待完善)