2017-02-16 18 views
0

私は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> 

答えて

1

私は少しあなたのコードをクリーンアップし、クラス名に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機能を与える任意の要素をクリアするJavaScript関数を追加し、それがすべて見つかったということですクラス名がclearOnResetの要素は、fieldsToClearという配列に配置されます。その下の行は、その配列のすべての要素を通り、その値を""に設定します。これは基本的には何もありません。特定のPOSTリクエストのパラメータが設定されている場合

PHPコードアイブはチェックを追加し、その形でそれぞれの位置に配置した場合、あなたはまだ不明な点がございましあるいは気付いた場合は

私のコードに問題が気軽にこの答えの下にコメントを書いてください。

+0

フィールドは、送信ボタンを押すと自動的にクリアになります。それは実際には主な問題です – maria

+0

あなたの質問を間違って読んでいるようですので、5分後にチェックして、病気が私の答えを編集した –

+0

たとえば、フィールドn1に4を入力し、フィールドn2に5を入力し、フィールドから5が消えて、答えが残っています。私は彼らに行ってほしくない。だから私が試みているのは、リセットボタンを押したときです。n1とn2を0に設定する必要があります。実際の値を4と5にしておかなければなりません。 – maria

0

Uはjqueryのライブラリファイルを追加し、名前のリセットなどのリセットボタンにIDを追加する必要があります。私はそれがここに意味をなさないコードであり、そしてあなたはそれに感謝を解く方法を説明してください願っています。 その後

$(document).ready(function(){ 

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

私のためには機能しませんでした。どのように実装しました – maria

+0

jqueryライブラリファイルを追加しますか? –

+0

ええ、私はそれをインポート

  • 11. ボタンをクリックした後にグリッドが表示される
  • 12. カスタム投稿タイプに投稿が表示されない
  • 13. ページリフレッシュ後にSeleniumがボタンをクリックできなくなった
  • 14. ボタンをクリックしたときにビューが表示されない?
  • 15. Jquery:メニューの外をクリックした後にドロップダウンメニューが表示されなくなる
  • 16. 投稿後に表示が更新されない
  • 17. AngularJSで投稿後にフォームデータが表示されない
  • 18. 更新またはコードシニターの作成後に投稿が表示されない
  • 19. 他のdivを表示した後に投稿をクリックしたときにチェック入力が空でない
  • 20. コメントが投稿された後、投稿にリダイレクトされます
  • 21. 送信ボタンをクリックしたときに投稿されないデータ
  • 22. ボタンがクリックされたときモーダルが表示されない
  • 23. XMLを解析した後にボタンが表示されない
  • 24. ビューを変更した後にボタンが表示されない
  • 25. 最後の月に最も多く投稿された投稿を表示します。
  • 26. ボタンがクリックされた後で強調表示されます
  • 27. リンクがクリックされたときにposts_nav_link()の投稿がさらに表示されない
  • 28. 今後の投稿が表示されない
  • 29. ボタンをクリックするとスウィフトが表示されなくなる
  • 30. Wordpressはもっとボタンをクリックして投稿をクリックしてください。