侯体宗的博客
  • 首页
  • Hyperf版
  • beego仿版
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

thinkPHP框架实现的简单计算器示例

ThinkPHP  /  管理员 发布于 7年前   615

本文实例讲述了thinkPHP框架实现的简单计算器。分享给大家供大家参考,具体如下:

HTML部分 文件名 index.html

    计算器      
登录
请输入你的手机号开始使用



计算器











当前结果:

历史记录:
  • 删除

CSS样式 文件名 index.css

.login{/*登录*/  height: 30px;  width: 100px;  background-color: #00a2d4;  text-align: center;  cursor: pointer;  padding-top: 10px;  position: fixed;}.register{  display: none;  position: fixed;}.calculator{  display: none;  position: fixed;}.counter{  border: 1px solid black;  height: 400px;  width: 320px;  float: left;}.import{  height: 20px;  width: 180px;  margin-top: 50px;  margin-left: 50px;}.snap{  margin-left: 50px;  margin-top: -30px;}.snap input{  height: 30px;  width: 30px;}.result{  border: 1px solid black;  height: 400px;  width: 320px;  float: left;  margin-left: 50px;}.brand{  position: relative;  top: 50px;  left: 90px;}

JS部分  文件名 index.js

//计算屏幕宽高var w_width = $(window).width();var w_height = $(window).height();var operator = 0;//运算符号var change = 0;//属于运算符后需要清空上一数值var num1 = 0;//元算的第一个数据var num2 = 0;//运算的第二个数据var sum = 0;//运算结果//居中function setCenter(obj){  var this_width = $(obj).width();  var this_height = $(obj).height();  var this_left = parseInt((w_width-this_width)/2);  var this_height = parseInt((w_height-this_height)/2);  $(obj).css({left:this_left,top:this_height});}//正则function testReg() {  //定义参数  var regType = arguments[0]?arguments[0]:'phone';  var myString = arguments[1]?arguments[1]:false;  var regArray = new Array();  regArray['phone'] = /^1[3|4|5|7|8]\d{9}$/;  regArray['email'] = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;//邮箱 *代表{0,} +代表{1,} ?代表{0,1}  //判断  if (myString){    return regArray[regType].test(myString);  }  return false;}//发送数据到后台function sendMessage() {  //手机号  var myphone = $("#myphone").val();  //计算器  var myUrl = '/app/base.php';  var myData = {num1:num1,num2:num2,cal_option:operator,cal_result:sum,myphone:myphone,type:'add'};  $.post(myUrl,myData,function (msg) {    //TODO  },'json')  getResultByPhone();}//获取结果function getResultByPhone() {  var myphone = $("#myphone").val();  var myUrl = '/app/base.php';  var myData = {myphone:myphone,type:'getResult'};  $.post(myUrl,myData,function (msg) {    //TODO    $("#cal_result").html(msg);  },'text')}//获取数据function deleteHistory(id) {  var myUrl = '/app/base.php';  var MyData = {id:id,type:'delete'};  $.post(myUrl,MyData,function (msg) {    //TODO  },'json')  getResultByPhone();}$(function () {  //登录居中  setCenter($(".login").show(8000));  //点击登录显示输入  $(".login").click(function(){    setCenter($(".register").show());    $(this).hide();  });  //点击使用显示计算器  $("#use").click(function () {    if (testReg('phone',$("#myphone").val())){      setCenter($(".calculator").show());      $(".register").hide();      getResultByPhone()    }else {      alert ("你输的手机格式不对");      return false;    }  })  $(".order").click(function () {//点击数字    var num = $(this).val();    var oldValue = $(".import").val();    if (change ==1){      oldValue = "0";      change = 0;    }    var newValue = "";    if (num == -1){      oldValue = parseFloat(oldValue);      newValue = oldValue * -1;    }else if (num == "."){      if (oldValue.indexOf('.') == -1)        newValue = oldValue + ".";      else        newValue = oldValue;    }else {      if (oldValue == 0 && oldValue.lastIndexOf('.') == -1){        newValue = num;      }else {        newValue = oldValue + num;      }    }    $(".import").val(newValue);  });  $("#clear").click(function () {//清除    $(".import").val("0");    operator = 0;    change = 0;    num1 = 0;    num2 = 0;  });  $("#backspace").click(function () {//退格    if (change ==1){      operator = 0;      change = 0;    }    var value = $(".import").val();    if (value.length == 1){      $(".import").val("0");    }else {      value = value.substr(0,value.length - 1);      $(".import").val(value);    }  });  $(".operator").click(function() {//点击运算符号触发事件    change = 1;    operator = $(this).val();    var value = $(".import").val();    var dianIndex = value.indexOf(".");    if (dianIndex == value.length) {      value = value.substr(0, value.length - 1);    }    num1 = parseFloat(value);  });  $("#equal").click(function () {//点击等号    var value = $(".import").val();    var dianIndex = value.indexOf(".");    if (dianIndex == value.length){      value = value.substr(0,value.length - 1);    }    var equal = $(this).val();    num2 = parseFloat(value);    if (operator == "+"){      sum = num1 + num2;    }else if (operator == "-"){      sum = num1 - num2;    }else if (operator == "*"){      sum = num1 * num2;    }else if (operator == "/"){      sum = num1 / num2;    }else if (operator == "" || num1 ==0 || num2 == 0){      sum = num1 +num2;    }    var re = /^[0-9]+.?[0-9]*$/;    if (re.test(sum)){      sum = sum.toFixed(2);    }    $(".import").val(sum);    sendMessage();    $("#current_results").text(num1 + operator + num2 + equal + sum);    change = 1;    operator = 0;    num1 = 0;    num2 = 0;  });})

接口 文件名 IDB.php

创建一个Mysqli类继承接口实现增删改查

文件名 MySqli.clsaa.php

 '',    'user' => '',    'pwd' => '',    'db' => ''  );  private static $_instance = null;  private function __construct($config){    if(is_array($config)){      $this->sysConfig = array_merge($this->sysConfig,$config);      $this->conn = new \Mysqli($this->sysConfig['host'],$this->sysConfig['user'],$this->sysConfig['pwd'],$this->sysConfig['db']);      if (!$this->conn){        echo "连接失败".mysqli_error();      }    }  }  public static function getInstance($config){    if (is_null(self::$_instance)){      self::$_instance = new self($config);    }    return self::$_instance;  }  //设计表  public function table($table){    $this->table = $table;    return $this;  }  //查询  private function changeCondition($condition){    $where_array = array();    foreach($condition as $k => $v){      if(is_array($v)){        if(strtolower($v[0])=='like'){          $where_array[] = $k.' '.$v[0].' \'%'.$v[1].'%\'';        }else{          $where_array[] = $k.' '.$v[0].' \''.$v[1].'\'';        }      }      if(is_string($v)){        $where_array[] = $k.' = \''.$v.'\'';      }    }    $where = implode(' AND ',$where_array);    return $where?$where:1;  }  public function select($condition){    $where = $this->changeCondition($condition);    $sql = "select * from $this->table where ".$where."order by id desc limit 10";    $res = $this->conn->query($sql);    $ret = array();    while ($row = $res->fetch_assoc()){      $ret[] = $row;    }    return $ret;  }  public function insert($data){    $sql = "insert into `{$this->table}` ( `id` ,`user_phone` ,`num1` ,`num2` ,`option` ,`result` ,`status` ,`admin_user` ) VALUES ( NULL , '{$data['myphone']}', '{$data['num1']}', '{$data['num2']}', '{$data['cal_option']}', '{$data['cal_result']}', '1', 'mao' )";    $this->conn->query($sql);  }    public function update($id){    $sql = "UPDATE `{$this->table}` SET `status` = '-1' WHERE `id` ={$id}";    $this->conn->query($sql);  }  public function del($condition){  }}

配置项  文件名 config.php

[    'host' => '127.0.0.1',    'user' => 'root',    'pwd' => 'root',    'db' => 'cal'  ],  'author' =>[    'adminuser' => 'mao',  ]];

操作计算器 文件名 base.php

array('like',$_POST['myphone']),      'status'=> '1'    );    $result = $db->table('calculate')->select($condition);    $result_string = '';    foreach ($result as $k => $v){      $result_string .= "
  • 删除{$v['num1']} {$v['option']} {$v['num2']} = {$v['result']}
  • "; } echo $result_string; } //删除 if ($_POST['type'] == 'delete'){ $id = isset($_POST['id'])?$_POST['id']:''; $db->table('calculate')->update($id); } if ($_POST['type'] == 'add'){ $data = $_POST; $db->table('calculate')->insert($data); }}

    目录结构

    sql语句

    SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";SET time_zone = "+00:00";/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;/*!40101 SET NAMES utf8 */;---- Y料: `cal`---- ------------------------------------------------------------ 表的Y `calculate`--CREATE TABLE IF NOT EXISTS `calculate` ( `id` int(10) NOT NULL AUTO_INCREMENT COMMENT '序号 主键 自增', `user_phone` varchar(100) NOT NULL COMMENT '用户手机号', `num1` varchar(100) NOT NULL COMMENT '第一个数字', `num2` varchar(100) NOT NULL COMMENT '第二个数字', `option` varchar(10) NOT NULL COMMENT '加减乘除选项', `result` varchar(100) NOT NULL COMMENT '结果', `status` int(10) NOT NULL COMMENT '状态-1 删除 0 禁用 1 正常', `admin_user` varchar(100) NOT NULL COMMENT '管理员', PRIMARY KEY (`id`)) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='计算表' AUTO_INCREMENT=40 ;---- D存Y料表中的Y料 `calculate`--INSERT INTO `calculate` (`id`, `user_phone`, `num1`, `num2`, `option`, `result`, `status`, `admin_user`) VALUES(1, '15727228076', '', '', '', '', 0, ''),(2, '15727228076', '7', '6', '+', '13', -1, 'jingshan'),(3, '13880425377', '9', '6', '+', '15', -1, 'jingshan'),(4, '13880425377', '8', '7', '+', '15', -1, 'jingshan'),(5, '13880425377', '8', '9', '*', '72', -1, 'jingshan'),(6, '13880425377', '6', '7', '+', '13', 1, 'jingshan'),(7, '13880425377', '89', '7', '+', '96', -1, 'jingshan'),(8, '13880425377', '67', '8', '+', '75', 1, 'jingshan'),(9, '13880425377', '2', '7', '+', '9', 1, 'jingshan'),(10, '13880425377', '78', '7', '+', '85', 1, 'jingshan'),(11, '13880425377', '12', '9', '*', '108', 1, 'jingshan'),(12, '13880425377', '23', '7', '-', '16', 1, 'jingshan'),(13, '13880425377', '67', '2', '-', '65', 1, 'jingshan'),(14, '13880425377', '34', '7', '+', '41', 1, 'jingshan'),(15, '13880425377', '78', '8', '/', '9.75', 1, 'jingshan'),(16, '13880425377', '72', '9', '+', '81', 1, 'jingshan'),(17, '13880425377', '78', '9', '+', '0', 1, 'mao'),(18, '13880425377', '67', '9', '+', '0', 1, 'mao'),(19, '13880425377', '78', '9', '+', '0', 1, 'mao'),(20, '13880425377', '78', '9', '+', '0', 1, 'mao'),(21, '13880425377', '67', '8', '+', '0', 1, 'mao'),(22, '13880425377', '62', '8', '+', '0', 1, 'mao'),(23, '13880425377', '12', '9', '*', '0', 1, 'mao'),(24, '13880425377', '12', '9', '+', '0', 1, 'mao'),(25, '13880425377', '7', '8', '-', '0', 1, 'mao'),(26, '13880425377', '2', '4', '+', '0', 1, 'mao'),(27, '13880425377', '8', '9', '*', '0', 1, 'mao'),(28, '13880425377', '8', '9', '+', '0', 1, 'mao'),(29, '13880425377', '12', '9', '*', '108.00', 1, 'mao'),(30, '13880425377', '7', '8', '+', '15.00', 1, 'mao'),(31, '13880425377', '1', '9', '*', '9.00', 1, 'mao'),(32, '13880425377', '29', '7', '*', '203.00', 1, 'mao'),(33, '13880425377', '95', '8', '/', '11.88', 1, 'mao'),(34, '13880425377', '67', '98', '*', '6566.00', 1, 'mao'),(35, '13880425377', '22', '9', '-', '13.00', 1, 'mao'),(36, '13880425377', '45', '9', '/', '5.00', 1, 'mao'),(37, '13880425377', '555', '777', '+', '1332.00', 1, 'mao'),(38, '13880425377', '89', '0', '-', '89.00', 1, 'mao'),(39, '13880425377', '0', '89', '0', '89.00', 1, 'mao');/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;---------------------

    更多关于thinkPHP相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

    希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

    您可能感兴趣的文章:

    • php学习之简单计算器实现代码
    • 用php简单实现加减乘除计算器
    • php实现天干地支计算器示例
    • PHP房贷计算器实例代码,等额本息,等额本金
    • PHP实现的简单四则运算计算器功能示例
    • PHP栈的定义、入栈出栈方法及基于堆栈实现的计算器完整实例
    • PHP实现的简单留言板功能示例【基于thinkPHP框架】
    • ThinkPHP框架基于PDO方式连接数据库操作示例
    • thinkPHP5实现数据库添加内容的方法
    • thinkPHP5实现的查询数据库并返回json数据实例


  • 上一条:
    php在一个文件不断写入字符串
    下一条:
    PHP实现的简单留言板功能示例【基于thinkPHP框架】
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • thinkphp + mongodb项目中数据加载慢问题分析及解决(0个评论)
    • thinkphp6框架中封装redis操作类(0个评论)
    • thinkphp6框架中实现定时任务功能流程步骤(0个评论)
    • Thinkphp5.1框架中实现Session+Redis会话共享流程步骤(0个评论)
    • TP5框架版本5.0.10安全漏洞根据官方补丁修复,也是本站安全漏洞修复(0个评论)
    • 近期文章
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(0个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 欧盟关于强迫劳动的规定的官方举报渠道及官方举报网站(0个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf文件功能(0个评论)
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • 在go + gin中gorm实现指定搜索/区间搜索分页列表功能接口实例(0个评论)
    • 在go语言中实现IP/CIDR的ip和netmask互转及IP段形式互转及ip是否存在IP/CIDR(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-10
    • 2017-12
    • 2018-01
    • 2018-02
    • 2020-03
    • 2021-07
    • 2021-12
    • 2022-05
    • 2022-06
    • 2022-09
    • 2023-01
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客