我过去一周一直在努力学习PHP 我创建了一个表单,其形式类似于计算器,其中两个值可以相加,相减,相乘或分割。
self.tableView.rowHeight = 96
事先我定义了计算器类,但它与此问题无关 所以我想要做的就是当我点击
$cal = new calculator();
if(isset($_POST['submit']))
{
$result = $cal->getresult($_POST['n1'],$_POST['n2'],$_POST['op']);
}
if(isset($_POST['reset'])){
$result = false;
}
?>
<form method="post">
<table align="center">
<tr>
<td><b><?php echo $result; ?></b></td>
</tr>
<tr>
<td>Zahl 1 </td>
<td><input type="number" name="n1"></td>
</tr>
<tr>
<td>Zahl 2 </td>
<td><input type="number" name="n2"></td>
</tr>
<tr>
<td>Select Oprator</td>
<td><select name="op">
<option value="+">+</option>
<option value="-">-</option>
<option value="*">*</option>
<option value="/">/</option>
</select></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="submit" value="Berechnen"></td>
</tr>
<tr>
<td></td>
<td><input type="reset" name="reset" value="Reset"></td>
</tr>
</table>
</form>
按钮我希望变量$ result被定义为空,我希望通过
实现<td><input type="reset" name="reset" value="Reset"></td>
实际上,php不应该在文档顶部显示结果,因为
if(isset($_POST['reset'])){
$result = false;
}
是空的?
不幸的是,这不会发生。有谁知道如何解决这个问题?
答案 0 :(得分:0)
重置按钮不会提交您的表单,这是PHP运行所需要的。但是, 可以在表单中使用多个提交按钮,并以不同方式命名。试试这个:
<input type="submit" name="reset" value="Reset">
这将触发表单提交,但会在POST数据中显示为“reset”,并随后触发逻辑以清除值。
修改强>
一旦您的页面在服务器端处理,$result
变量就会消失。随着时间的推移它出现在浏览器中,请求的那一部分已经结束,变量不存在,因此单击“重置”按钮并不重要。听起来您想要清除表单并清除结果显示。在这种情况下,请继续按原样使用重置按钮。
然后添加一些javascript来清除结果。要使其正常工作,您需要为包含它的元素添加ID或类:
<tr>
<td>
<b id="result">
<?php echo $result; ?>
</b>
</td>
</tr>
然后在JS文件中,在<script>
标记中添加一个单击处理程序,或者在元素本身上添加一个单击处理程序:
<input type="reset" name="reset" value="Reset" onClick="document.getElementById('result').innerHTML='0';">
这会将其设置为“0”。