十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
ThinkPHP5中怎么使用jQuery和MySQL实现一个投票功能,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
庄浪ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联建站的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
前端代码:
基于THINKPHP5实现红蓝投票功能 ThinkPHP5+jQuery+MySql实现红蓝投票功能
您对Thinkphp5的看法?非常实用
完全不懂
控制器:
fetch(); } /** * 投票 * @param vid type ip */ public function Vote() { $data = input('post.'); if (!empty($data)) { $data['ip'] = get_ip(); //获取Ip // 先检测当前ip是否已经投过票 $count = model('Vote')->checkIp($data); // 检测是否提交了type,提交了即代表点击了按钮,没提交即代表页面初次渲染 if (!empty($data['type'])) { if ($count == '0') { //当前还未投过票 // 更新票数 添加用户ip表 $res = model('Vote')->postVote($data); if ($res) { // 投票成功 获取当前各自的票数 $info = $this->getPercent($data); return return_succ($info); }else{ return return_error('投票失败'); } }else{ // 已经投过票 return return_error('您已经投过票了'); } }else{ // 初次渲染,获取初始数据 $info = $this->getPercent($data); return return_succ($info); } }else{ return return_error('数据不能为空'); } } // 计算比例 public function getPercent($data) { // 投票成功 获取当前各自的票数 $info = model('Vote')->getInfo($data); // 计算比例 保留3位小数 $info['red_percent'] = round($info['rednum'] / ($info['rednum'] + $info['bluenum']),3); $info['blue_percent'] = 1 - $info['red_percent']; return $info; } }
模型:
where(['vid'=>$data['vid'],'ip'=>$data['ip']])->count(); return $res; } // 投票 public function postVote($data) { $info = $this->getInfo($data); if ($info) { Db::startTrans(); try { if ($data['type'] == "red") { // 更新票数表 Db::table('votes')->where(['id'=>$data['vid']])->update(['rednum'=>$info['rednum']+1]); }elseif ($data['type'] == "blue") { Db::table('votes')->where(['id'=>$data['vid']])->update(['bluenum'=>$info['bluenum']+1]); } // 添加用户投票ip Db::table('votes_ip')->insert(['vid'=>$data['vid'],'ip'=>$data['ip']]); Db::commit(); return true; } catch (Exception $e) { Db::rollback(); return false; } } } // 获取当前各自的票数 public function getInfo($data) { // 获取各自的票数 $info = Db::table('votes')->where(['id'=>$data['vid']])->find(); return $info; } }
关于ThinkPHP5中怎么使用jQuery和MySql实现一个投票功能问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注创新互联行业资讯频道了解更多相关知识。