系统提交后页面没有反应,请帮我看看代码是否正确,逻辑是否可以~
来源:1-17 编程练习
阿尔法云通讯
2019-08-19 06:53:13
<?php
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$op=$_POST['op'];
$sub = $_POST['sub'];
if($sub){
if(is_numeric($num1) && is_numeric($num2)){
switch($op){
case '+':
$res = $num1 + $num2;
break;
case '-':
$res = $num1 - $num2;
break;
case '*':
$res = $num1 * $num2;
break;
case '/':
if($num2!=0){
$res = $num1 / $num2;
}else{
exit('除数不能为0');
}
break;
}
echo "运算结果为:<br/>{$num1}{$op}{num2}={$res}";
}else{
exit('请输入正确的数值');
}
}else{
exit;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>计算器</title>
</head>
<body>
<form action="#" method="post">
<input type="text" name="num1">
<select name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select>
<input type="text" name="num2">
<input type="submit" name="sub" value="计算">
<input type="reset" value="重置">
</form>
</body>
</html>
1回答
同学你好,访问时报错:未定义的变量。
错误原因:由于程序第一次运行,并未接收到post值则开始定义变量造成的。
解决方法:判断是否是post传值,是就进行操作。代码如下:
<?php
// 判断是否是post传值,是则进入
if($_POST) {
$num1=$_POST['num1'];
$num2=$_POST['num2'];
$op=$_POST['op'];
$sub = $_POST['sub'];
if($sub){
if(is_numeric($num1) && is_numeric($num2)){
switch($op){
case '+':
$res = $num1 + $num2;
break;
case '-':
$res = $num1 - $num2;
break;
case '*':
$res = $num1 * $num2;
break;
case '/':
if($num2!=0){
$res = $num1 / $num2;
}else{
exit('除数不能为0');
}
break;
}
// 缺少$符
echo "运算结果为:<br/>{$num1}{$op}{$num2}={$res}";
}else{
exit('请输入正确的数值');
}
}else{
exit;
}
}
?>祝学习愉快!
相似问题