基于php基础语言编写的小程序之计算器

需求:在输入框中输入数字进行加、减、乘、除运算(html+php)

思路:

1首先要创建输入数字和运算符的输入框,数字用input的text属性,运算符用selelct的option属性

2 点击输入框中的=号要进行对应的运算,

3 =号这个输入框可以用input的submit来做,只要点击submit表单里的内容就传给php了

4 判断从html中得到的运算符进行对应的运算

5 运算完成后还得把结果返回到表单中(就是给表单的value赋值)

代码

Html代码

<form method="post" action=””>//method代表的表单的提交方式,本案例选的是post提交 action是接受的页面,为空表示提交到当前页

<input type = "text" name="num1" >

<select name = "select">

<option value="+" >+</option>

<option value="-" >-</option>

<option value="*" >*</option>

<option value="/" >/</option>

</select>

<input type = "text" name="num2" >

<input type = "submit" name = "submit" value="=">

<input type = "text" name="result" >

</form>

PHP代码

当用户点击提交按钮值就会通过post传递过来,现在要接受表单里的值。

在点击之前要做几个判断

if (isset($_POST['submit'])) {

//isset检测变量是否设置,存在,或非NULL, 返回值为布尔, 如果变量存在返回true, 否则为false;,结合$_POST[“submit”], $_POST   //接收通过表单的method=’post’ 方法的传值

$num1 = $_POST['num1'];//获取第一个输入框中的值,通过input中的name属性获得

$select = $_POST['select'];//同上

$num2 = $_POST['num2'];//同上

if (is_numeric($num1) && is_numeric($num2)) {

//is_numeric() //检测变量是否为数字或数字字符串  返回值 ,true, false  如 100, ‘100’

switch ($select) {//$select是前面传来的运算符

case '+'://根据switch的语法,case中的值和switch括号里的值相等那么就执行case后面的那句话,不等则继续往下找

$result = $num1+$num2;

break;

case '-':

$result = $num1-$num2;

break;

case '*':

$result = $num1*$num2;

break;

default:

if ($num2==0) {//加个判断,除数不能为0

echo "<script>alert('输入的除数为0请重新输入')</script>";

}else{

$result = $num1/$num2;

break;

}

}

}else{

//echo 当用户输入的不是数,可能是字符串则给用户提示

echo "<script>alert('输入的不是数')</script>";

$num1 = $num2 = $result = "";//把表单里的内容清空

}

}

运行结果截图

当输入正确的数字截图

点击=号后

说明值没有传给html中的表单,

现在要去设置表单的value

<input type = "text" name="num1" value="<?php echo $num1?>"  >//把value的值设置为php中运算后的num值

<select name = "select">

<option value="+" >+</option>

<option value="-" >-</option>

<option value="*" >*</option>

<option value="/" >/</option>

</select>

<input type = "text" name="num2" value="<?php echo $num2?>" >

<input type = "submit" name = "submit" value="=">

<input type = "text" name="result" value="<?php echo $result?>">

</form>

运行结果

在用户没有点击提交按钮时输入框现在有内容,所以在用户没有点击提交按钮时应该把输入框中的值置为空

改进带码,在php的代码最后加一个else{

$num1 =$num2 = $result = "";

}

截图

在点击其他运算时,中间的运算符始终为+,截图

代码改进

在html中

<select name = "select">

<option value="+" <?php if($select == '+')echo 'selected'?>>+</option>

//select有一个属性selected当设置了就默认选中了它所以得结合php传过来的值比较,true就代表选中false就代表未选

<option value="-" <?php if($select == '-')echo 'selected'?>>-</option>

<option value="*" <?php if($select == '*')echo 'selected'?>>*</option>

<option value="/" <?php if($select == '/')echo 'selected'?>>/</option>

</select>

截图看结果

当用户第一次进来

截图

说明要设置selecte中的默认值

代码

$select=”+”

基本功能已经完成

总的代码

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>Document</title>

</head>

<body>

<?php

if (isset($_POST['submit'])) {

//isset检测变量是否设置,存在,或非NULL, 返回值为布尔, 如果变量存在返回true, 否则为false;,结合$_POST[“submit”], $_POST   //接收通过表单的method=’post’ 方法的传值

$num1 = $_POST['num1'];//获取第一个输入框中的值,通过input中的name属性获得

$select = $_POST['select'];//同上

$num2 = $_POST['num2'];//同上

if (is_numeric($num1) && is_numeric($num2)) {

//is_numeric() //检测变量是否为数字或数字字符串  返回值 ,true, false  如 100, ‘100’

switch ($select) {//$select是前面传来的运算符

case '+'://根据switch的语法,case中的值和switch括号里的值相等那么就执行case后面的那句话,不等则继续往下找

$result = $num1+$num2;

break;

case '-':

$result = $num1-$num2;

break;

case '*':

$result = $num1*$num2;

break;

default:

if ($num2==0) {//加个判断,除数不能为0

echo "<script>alert('输入的除数为0请重新输入')</script>";

}else{

$result = $num1/$num2;

break;

}

}

}else{

//echo 当用户输入的不是数,可能是字符串则给用户提示

echo "<script>alert('输入的不是数')</script>";

$num1 = $num2 = $result = "";//把表单里的内容清空

}

}else{

$num1 = $num2 = $result = "";

$select = "+";

}

?>

<form method="post" action=""><!-- //method代表的表单的提交方式,本案例选的是post提交 action是接受的页面,为空表示提交到当前页 -->

<input type = "text" name="num1" value="<?php echo $num1?>"  >

<select name = "select">

<option value="+" <?php if($select == '+')echo 'selected'?>>+</option>

<option value="-" <?php if($select == '-')echo 'selected'?>>-</option>

<option value="*" <?php if($select == '*')echo 'selected'?>>*</option>

<option value="/" <?php if($select == '/')echo 'selected'?>>/</option>

</select>

<input type = "text" name="num2" value="<?php echo $num2?>" >

<input type = "submit" name = "submit" value="=">

<input type = "text" name="result" value="<?php echo $result?>">

</form>

</body>

</html>

基于php基础语言编写的小程序之计算器的更多相关文章

  1. 怎么样通过编写Python小程序来统计测试脚本的关键字

    怎么样通过编写Python小程序来统计测试脚本的关键字 通常自动化测试项目到了一定的程序,编写的测试代码自然就会很多,如果很早已经编写的测试脚本现在某些基础函数.业务函数需要修改,那么势必要找出那些引 ...

  2. 基于spring-boot的社区社交微信小程序,适合做脚手架、二次开发

    基于spring-boot的社区社交微信小程序,适合做脚手架.二次开发 代码地址如下:http://www.demodashi.com/demo/13867.html 1 概述 笔者做的一个后端基于s ...

  3. 微信小程序-简易计算器

    代码地址如下:http://www.demodashi.com/demo/14210.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  4. 基于go语言结合微信小程序开发的微商城系统

    最近在慕课网上录制了一门<Golang微信小程序微商城系统原型>,这门免费课程特别适合在校大学生或者刚毕业的大学生,go语言初学者以及想要从事微商城开发项目入门的小伙伴们来学习.在课程当中 ...

  5. C#基础知识-编写第一个程序(二)

    通过上一篇数据类型已经介绍了C#中最基本的15种预定义数据类型,了解每一种类型代表的数据以及每种类型的取值范围,这是很重要也是最基本.下面我们通过实例来了解每个类型如何去使用.编写C#程序时我们需要用 ...

  6. 高效编写微信小程序

    原文:https://isux.tencent.com/high-performance-wechat-app-development.html 前言 微信小程序是一个工程,就和盖房子一样,打好了地基 ...

  7. 基于NopCommerce框架开发的微信小程序UrShop

    Urshop小程序商城 介绍 UrShop小程序商城 2.0发布啦,发布地址https://gitee.com/urselect/urshop UrShop 根据NopCommerce框架开发的,基于 ...

  8. 【微信小程序】使用vscode编写微信小程序项目

    1. 在微信开发者工具(以下简称:开发者)中新建一个模板微信小程序 2. 在开发者中将模拟器分隔开 3. 设置在保存时编译 4. 在vscode中打开项目目录 5. 下载代码提示插件 这样就可以在vs ...

  9. 基于vs2015 SignalR开发的微信小程序使用websocket实现聊天功能

    一)前言 在微信小程上实现聊天功能,大致有三种方式:1)小程序云开发 2)购买第三方IM服务 3)使用自己的服务器自己开发. 这里重要讲使用自己的服务器自己开发,并且是基于vs的开发. 网上提供的解决 ...

随机推荐

  1. 1Z0-053 争议题目解析698

    1Z0-053 争议题目解析698 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 698.In your production database, you: -Are using ...

  2. struts2学习笔记--使用servletAPI实现ajax的一个小Demo

    这个例子是点击网页上的一个button,然后调用action,使用response项前台打印"哎呦 不错哦",当然是以异步形式实现. jsp页面: <head> < ...

  3. 一台电脑上的git同时使用两个github账户

    需求: 公司有github账号,自己有github账号,想在git上同时使用,两者互不干扰. 思路: 管理两个SHH key. 解决方案: 一.生成两个SSH key 为了举例方便,这里使用“one” ...

  4. Sublime插件支持Sass编译和Babel解析ES6 & .sublime-build文件初探

    用Sublime Text蛮久了,配置配来配去的,每次换电脑都得重头再配过,奈何人老了脑子不中用了,得好好整理一些,下次换电脑就有得参考了.. 同事说,他的WebStorm简直太方便,自身集成了很多方 ...

  5. JAVA调用 keytool 生成keystore 和 cer 证书

    keytool是一个Java数据证书的管理工具, keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中在keystore里, 包含两种数据: 密钥实体( ...

  6. 设计模式(Design Pattern)系列之.NET专题

    最近,不是特别忙,重新翻了下设计模式,特地在此记录一下.会不定期更新本系列专题文章. 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结. 使用 ...

  7. Asp.Net Core子应用由于配置中重复添加模块会引起IIS错误500.19

    ASP.NET Core已经从IIS中解耦,可以作为自宿主程序运行,不再依赖IIS. 但我们还是需要强大的IIS作为前置服务器,IIS利用httpPlatformHandler模块来对后台的一些web ...

  8. 获取form对象

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. J2EE的13种核心技术

    一.JDBC(Java Database Connectivity) JDBC API为访问不同的数据库提供了一种统一的途径,象ODBC一样,JDBC对开发者屏蔽了一些细节问题,另外,JDBC对数据库 ...

  10. tomcat 自定义classpath(亲自测试)

    因为一直以来使用tomcat和weblogic作为应用服务器为主,最近在升级新中间件的过程中遇到一个问题,我们的web前端应用现在升级是进行全量包升级的,因为现在的系统架构为前端和后端通过rpc框架交 ...