php简易计算器

扫码查看

php循环结构

案例:php简易计算器

php简易计算器-LMLPHP

步骤:

1.先绘制这个表格

2.根据表单提交的sub属性判断一下,是否点击计算了

(GET方式提交的数据,通过地址栏传递的)

3.计算,并将结果输入到第二行

  问题:当点击计算后,之前输入数字及运算符消失,因为点击计算后提交到当前页面,等于刷新

   当点击之后,运算符默认又恢复到+

  解决:通过selected属性控制下拉列表是否被选中

  单路分支,可以不写{}

4.完善

  如果用户输入是字符串或者是空值,提示不能为空或者不能为字符串

  通过地址栏上有没有 sub=计算 这个参数来判断用户有没有点击计算

 <html>
<head>
<meta charset="utf-8"/>
</head>
<?php
$result='';
$message='';
$num1=true;
$num2=true;
$numa=true;
$numb=true; if($_GET['sub']=='计算'){
//用户点击了计算按钮
if($_GET['num1']==''){
$num1=false;
$message.='第一个不能为空<br/>';
//return false; //停止代码继续执行
}
if($_GET['num2']==''){
$num2=false;
$message.='第二个不能为空<br/>';
//return false; //停止代码继续执行
}
if(!is_numeric($_GET['num1'])){
$numa=false;
$message.='第一个数字必须为数值<br/>';
}
if(!is_numeric($_GET['num2'])){
$numb=false;
$message.='第二个数字必须为数值<br/>';
}
if($num1&&$num2&&$numa&&$numb){
switch($_GET['ysf']){
case '+':
$result=$_GET['num1']+$_GET['num2'];
break; case '-':
$result=$_GET['num1']-$_GET['num2'];
break; case '*':
$result=$_GET['num1']*$_GET['num2'];
break; case '/':
$result=$_GET['num1']/$_GET['num2'];
break; case '%':
$result=$_GET['num1']%$_GET['num2'];
break;
}
} echo $result;
}
?>
<body>
<table align="center" cellspacing='4px' cellpadding='0'>
<caption><h2>php的简易计算器</h2></caption>
<form action='jsq.php' method='GET' >
<tr>
<td><input type="text" name='num1' value="<?php echo $_GET['num1']?>"/></td>
<td>
<select name='ysf'>
<option <?php if($_GET['ysf']=='+')echo 'selected';?>>+</option>
<option <?php if($_GET['ysf']=='-'){echo 'selected';}?>>-</option>
<option <?php if($_GET['ysf']=='*'){echo 'selected';}?>>*</option>
<option <?php if($_GET['ysf']=='/'){echo 'selected';}?>>/</option>
<option <?php if($_GET['ysf']=='%'){echo 'selected';}?>>%</option>
</select>
</td>
<td><input type="text" name='num2' value="<?php echo $_GET['num2']?>"/></td>
<td><input type="submit" name="sub" value="计算"/></td>
</tr>
<tr>
<td colspan='4'>
<?php
if($num1&&$num2&&$numa&&$numb){
echo "运算结果是:".$_GET['num1'].$_GET['ysf'].$_GET['num2']."=".$result;
}else{
echo $message;
} ?>
</td>
</tr>
</form>
</table>
</body>
</html>
05-14 05:42
查看更多