2

Number 1 と Number 2 に数値を入力し、「Add」を押すと。付加価値の合計は表示されません。以下の私のコーディングを参照してください。そして、何が問題なのか、何ができるのか、私にアドバイスしてください。

<html>
<head>
<title>Simple Calculator</title>
<?php
    if(isset($_POST['submitted'])){
        if(is_numeric($_POST['number1']) && is_numeric($_POST['number2'])){
        $add = ($_POST['number1'] + $_POST['number2']);
            echo "Add: ".$_POST['number1']."+".$_POST['number2']."=";
            }
        }



?>
<script type="text/javascript">


</script>
</head>

<body>
<h1>Simple Calculator</h1>
<form action="simple_calculator.php" method="post">
<p>Number 1: <input type="text" name="number1" size="20" value="<?php if(isset($_POST['number1'])) echo $_POST['number1'];?>"/></p>
<p>Number 2: <input type="text" name="number2" size="20" value="<?php if(isset($_POST['number2'])) echo $_POST['number2'];?>"/></p>

          <input type="button" name="add" value="Add" />
          <input type="button" name="minus" value="Minus" />
          <input type="button" name="multiply" value="Multiply" />
          <input type="button" name="divide" value="Divide" />
          <input type="reset" name="rest" value="Reset" />
          <input type="hidden" name="submitted" value="TRUE" />


</form>

</body>
</html>
4

2 に答える 2

5
  1. 結果データを にエコーしているため<head>、表示されません。
  2. echo するのを忘れました$add
  3. あなた<input>の はタイプbuttonであり、 ではないsubmitため、フォームはサーバーに送信されません。
  4. 以前に入力した値をフォームにエコーしているため、<input type="reset">おそらく、望んでいること/期待していることは実行されません。これは別の として実装した方が良いと思いますsubmit
  5. このフォームは次のページの表示にのみ影響し、サーバーに永続的な変更を加えないため、 ではなくGETメソッドを使用する必要がありますPOST

これを試して:

<html>
  <head>
    <title>Simple Calculator</title>
    <script type="text/javascript"></script>
  </head>
  <body>
    <h1>Simple Calculator</h1>
    <form action="simple_calculator.php" method="get">
      <p>Number 1: <input type="text" name="number1" size="20" value="<?php if (isset($_GET['number1']) && !isset($_GET['reset'])) echo $_GET['number1'];?>"/></p>
      <p>Number 2: <input type="text" name="number2" size="20" value="<?php if (isset($_GET['number2']) && !isset($_GET['reset'])) echo $_GET['number2'];?>"/></p>
      <input type="submit" name="add" value="Add" />
      <input type="submit" name="minus" value="Minus" />
      <input type="submit" name="multiply" value="Multiply" />
      <input type="submit" name="divide" value="Divide" />
      <input type="submit" name="reset" value="Reset" />
      <input type="hidden" name="submitted" value="1" />
    </form>
    <?php

        if (isset($_GET['submitted']) && !isset($_GET['reset'])) {

            echo "<div>";

            if (is_numeric($_GET['number1']) && is_numeric($_GET['number2'])) {

                if (isset($_GET['add'])) {

                    $result = $_GET['number1'] + $_GET['number2'];
                    echo "Add: ".$_GET['number1']." + ".$_GET['number2']." = ".$result;

                } else if (isset($_GET['minus'])) {

                    $result = $_GET['number1'] - $_GET['number2'];
                    echo "Minus: ".$_GET['number1']." - ".$_GET['number2']." = ".$result;

                } else if (isset($_GET['multiply'])) {

                    $result = $_GET['number1'] * $_GET['number2'];
                    echo "Multiply: ".$_GET['number1']." * ".$_GET['number2']." = ".$result;

                } else if (isset($_GET['divide'])) {

                    $result = $_GET['number1'] / $_GET['number2'];
                    echo "Divide: ".$_GET['number1']." / ".$_GET['number2']." = ".$result;

                }

            } else {

                echo "Invalid input";

            }

            echo "</div>";

        }

    ?>
  </body>
</html>
于 2012-06-10T13:05:17.753 に答える