php循环结构
案例:php简易计算器
步骤:
1.先绘制这个表格
2.根据表单提交的sub属性判断一下,是否点击计算了
(GET方式提交的数据,通过地址栏传递的)
3.计算,并将结果输入到第二行
问题:当点击计算后,之前输入数字及运算符消失,因为点击计算后提交到当前页面,等于刷新
当点击之后,运算符默认又恢复到+
解决:通过selected属性控制下拉列表是否被选中
单路分支,可以不写{}
4.完善
如果用户输入是字符串或者是空值,提示不能为空或者不能为字符串
通过地址栏上有没有 sub=计算 这个参数来判断用户有没有点击计算
1 <html> 2 <head> 3 <meta charset="utf-8"/> 4 </head> 5 <?php 6 $result=''; 7 $message=''; 8 $num1=true; 9 $num2=true; 10 $numa=true; 11 $numb=true; 12 13 if($_GET['sub']=='计算'){ 14 //用户点击了计算按钮 15 if($_GET['num1']==''){ 16 $num1=false; 17 $message.='第一个不能为空<br/>'; 18 //return false; //停止代码继续执行 19 } 20 if($_GET['num2']==''){ 21 $num2=false; 22 $message.='第二个不能为空<br/>'; 23 //return false; //停止代码继续执行 24 } 25 if(!is_numeric($_GET['num1'])){ 26 $numa=false; 27 $message.='第一个数字必须为数值<br/>'; 28 } 29 if(!is_numeric($_GET['num2'])){ 30 $numb=false; 31 $message.='第二个数字必须为数值<br/>'; 32 } 33 if($num1&&$num2&&$numa&&$numb){ 34 switch($_GET['ysf']){ 35 case '+': 36 $result=$_GET['num1']+$_GET['num2']; 37 break; 38 39 case '-': 40 $result=$_GET['num1']-$_GET['num2']; 41 break; 42 43 case '*': 44 $result=$_GET['num1']*$_GET['num2']; 45 break; 46 47 case '/': 48 $result=$_GET['num1']/$_GET['num2']; 49 break; 50 51 case '%': 52 $result=$_GET['num1']%$_GET['num2']; 53 break; 54 } 55 } 56 57 58 echo $result; 59 } 60 ?> 61 <body> 62 <table align="center" cellspacing='4px' cellpadding='0'> 63 <caption><h2>php的简易计算器</h2></caption> 64 <form action='jsq.php' method='GET' > 65 <tr> 66 <td><input type="text" name='num1' value="<?php echo $_GET['num1']?>"/></td> 67 <td> 68 <select name='ysf'> 69 <option <?php if($_GET['ysf']=='+')echo 'selected';?>>+</option> 70 <option <?php if($_GET['ysf']=='-'){echo 'selected';}?>>-</option> 71 <option <?php if($_GET['ysf']=='*'){echo 'selected';}?>>*</option> 72 <option <?php if($_GET['ysf']=='/'){echo 'selected';}?>>/</option> 73 <option <?php if($_GET['ysf']=='%'){echo 'selected';}?>>%</option> 74 </select> 75 </td> 76 <td><input type="text" name='num2' value="<?php echo $_GET['num2']?>"/></td> 77 <td><input type="submit" name="sub" value="计算"/></td> 78 </tr> 79 <tr> 80 <td colspan='4'> 81 <?php 82 if($num1&&$num2&&$numa&&$numb){ 83 echo "运算结果是:".$_GET['num1'].$_GET['ysf'].$_GET['num2']."=".$result; 84 }else{ 85 echo $message; 86 } 87 88 ?> 89 </td> 90 </tr> 91 </form> 92 </table> 93 </body> 94 </html>