PHP - 我想在单击type =“reset”按钮时将值设置为false。我怎样才能做到这一点?

时间:2017-05-11 19:49:04

标签: php html switch-statement

我过去一周一直在努力学习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;
}

是空的?

不幸的是,这不会发生。有谁知道如何解决这个问题?

1 个答案:

答案 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”。