单击提交按钮后停止字段以清除

时间:2017-02-16 03:05:24

标签: php html forms

我是php新手我试图阻止字段在我点击提交按钮后变得清晰我也想创建重置按钮,可以在需要时清除字段。我希望这里的代码是有意义的,请描述你是如何解决它的,谢谢:

<?php
$result = "";
 class calculator
{
var $a;
var $b;

function checkopration($oprator)
{
    switch($oprator)
    {
        case '+':
        return $this->a + $this->b;
        break;

        case '-':
        return $this->a - $this->b;
        break;

        case '*':
        return $this->a * $this->b;
        break;

        case '/':
        return $this->a / $this->b;
        break;

        default:
        return "Sorry No command found";
    }
}
function getresult($a, $b, $c)
{
    $this->a = $a;
    $this->b = $b;
    return $this->checkopration($c);
}
}

$cal = new calculator();
if(isset($_POST['submit']))
{
     $result = $cal->getresult($_POST['n1'],$_POST['n2'],$_POST['op']);
}
?>

  <form method="post">
  <table align="center">
     <tr>
       <td><strong><?php echo $result; ?><strong></td>
   </tr>
   <tr>
          <td>Enter 1st Number</td>
    <td><input type="text" name="n1"></td>
</tr>

<tr>
    <td>Enter 2nd Number</td>
    <td><input type="text" 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="                =                "></td>
</tr>

 </table>
 </form>

2 个答案:

答案 0 :(得分:1)

我稍微清理了你的代码并添加了一个javascript函数,它将清除你给出类名clearOnReset

的任何元素
<form method="post">
    <table align="center">
    <tr>
      <td><strong class="clearOnReset"><?php echo $result; ?></strong></td>
    </tr>
    <tr>
      <td>Enter 1st Number</td>
      <td><input type="text" name="n1" class="clearOnReset" value="<?php if(isset($_POST['n1'])){echo htmlspecialchars($_POST['n1']);}?>"></td>
    </tr>
    <tr>
      <td>Enter 2nd Number</td>
      <td><input type="text" name="n2" class="clearOnReset" value="<?php if(isset($_POST['n2'])){echo htmlspecialchars($_POST['n2']);}?>"></td>
    </tr>
    <tr>
      <td>Select Oprator</td>
      <td>
        <select name="op">
          <option value="+" <?php if(isset($_POST['op']) && $_POST['op']=="+") { echo "selected";}?>>+</option>
          <option value="-" <?php if(isset($_POST['op']) && $_POST['op']=="-") { echo "selected";}?>>-</option>
          <option value="*" <?php if(isset($_POST['op']) && $_POST['op']=="*") { echo "selected";}?>>*</option>
          <option value="/" <?php if(isset($_POST['op']) && $_POST['op']=="/") { echo "selected";}?>>/</option>
        </select>
      </td>
    </tr>
    <tr>
      <td>
        <input type="submit" name="submit" value="                =                ">
      </td>
    </tr>
  </table>
</form>
<button onclick="resetCalculator()">reset calculator</button>
<script>
function resetCalculator(){
    var fieldsToClear = document.getElementsByClassName("clearOnReset");
    for(var i = 0; i < fieldsToClear.length; i++){
        fieldsToClear[i].value="";
    }
}
</script>

所有javascript函数都会找到所有带有类名clearOnReset的元素,然后将它们放入一个名为fieldsToClear的数组中。然后,该行下面的一行会遍历该数组中的每个元素并设置它的值为"",基本上没什么。

php代码我添加了检查是否已设置某些发布请求参数,如果是,则将它们放在表单中的各自位置

如果您仍然有任何问题或注意到我的代码有任何问题,请随时在此答案下面发表评论。

答案 1 :(得分:0)

首先,U必须添加jquery库文件,并将id添加到重置按钮作为名称重置。 那么

$(document).ready(function(){

        $("#reset").click(function(){
            $("input[type='text']").val('');
        })
    })