【发布时间】:2021-08-08 01:04:08
【问题描述】:
所以,我正在做一个工资计算器 使用 Switch 语句为 $NetS 变量赋值,但是当我尝试在文本框中回显时,它给出了这个错误:
未定义变量:C:\wamp\www\salary.php 中的 NetS 在第 73 行调用 堆栈#TimeMemoryFunctionLocation 10.0003390392{main}( )...\salary.php:0 " />
这是我的代码
<body>
<?php
if(isset($_POST['Submit']))
{
$Dept = $_POST['Dept'];
$ES = $_POST['ES'];
$NetS;
switch($Dept)
{
case "da":
$NetS = $ES - ($ES*1/100)-500;
break;
case "db":
$NetS = $ES - ($ES*2/100)-500;
break;
case "dc":
$NetS = $ES - ($ES*3/100)-500;
break;
case "dd":
$NetS = $ES - ($ES*5/100)-500;
break;
default: echo"Invalid Choice or error";
break;
}
}
?>
<h1 style="text-align:center;">CS310 Open Source Web Application Development</h1>
<h3 style="text-align:center;" >Assignment no 1</h3>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']);?>" method="POST">
<br><br>
Select Department
<select name="Dept" id="Dept" class="form-control" style="width:230px">
<option value="">Select Options</option>
<option value="da">Department A</option>
<option value="db">Department B</option>
<option value="dc">Department C</option>
<option value="dd">Department D</option>
</select>
</form>
<br><br>
Employee Salary
<input type="text" name="ES" Placeholder="Enter Employee Salary" class="form-control" style="width:230px"/>
<br>
<input type="submit" name="Submit" class="tn btn-success" style="width:120px"/>
<br> <br>
Net salary
<input type="text" class="form-control" style="width:230px" name="NetSalary" value="<?php echo $NetS; ?>" />
</body>
</html>
【问题讨论】:
-
不是您当前的问题,而是您的
default没有分配值,它只是输出。$NetS仅在提交表单时创建.. 否则未定义。 -
另外,如果不使用
department值$_POST['ES'] - ( $_POST['ES'] * $_POST['Dept']/100) - 500会容易得多,只需将值放在value中即可。如果想在不存在时抛出Invalid Choice or error,也可以为 4 个值执行in_array。
标签: php switch-statement