码迷,mamicode.com
首页 > 微信 > 详细

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

时间:2019-01-05 18:19:56      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:oar   mysq   包括   数组   width   min   data   返回   local   

  首先在数据库中要有张表,字段为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做简单的投票小程序

标签:oar   mysq   包括   数组   width   min   data   返回   local   

原文地址:https://www.cnblogs.com/xwenbin/p/10225240.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!