0

PHPで電卓を作成していますが、このようなHTML構造で、数値はクリック可能なボタンであり、最初にクリックされた数値が最初の値になり、2番目にクリックした数値が2番目の値になります。 。それがどのように機能するのかわかりませんが、可能ですか?もしそうなら、これが私のコードです

<html>
    <head>
        <title>Calculator</title>
    </head>
        <body>
            <div id = "structure">
            <?php
                if(isset($_GET)){
                    $value += $_GET;
                }
            ?>
                <form method = "GET " action = "calculator.php">
                    <input type = "submit" name = "one" value = 1>
                    <input type = "submit" name = "two" value = 2>
                    <input type = "submit" name = "three" value = 3>
                    <input type = "submit" name = "operand" value = "+">
                    </br>
                    <input type = "submit" name = "four" value = 4>
                    <input type = "submit" name = "five" value = 5>
                    <input type = "submit" name = "six" value = 6>
                    <input type = "submit" name = "operand" value = "-">
                    </br>
                </form>
            </div>
        </body>
</html>

投稿のために電卓にすべての数字を入れていません

4

3 に答える 3

0

これは本の演習であり、ポイントはコードを書くことであるため、コードを提供するつもりはありません。しかし、正しい方向 (または少なくとも 1 つ) を示すことができます。

すべての操作の現在の累積値を格納する各要求で送信できる何らかの値を使用することを検討してください。これはおそらくどこかに表示され、PHP がフォーム送信時に読み取ることができるフィールドにも配置されるはずです (ヒント: 隠し入力タイプについて聞いたことがありますか?)。最後の操作をどのように追跡しますか? おそらく、これらのフィールドの別の 1 つを使用して、別のボタンが押されるまで操作を保存できます。

フォームが送信されたかどうかを確認するために使用できるコードは何ですか? どのボタンが押されたかを確認する方法を教えてください。+が押された場合、どの値が設定されますか? 数字を押したらどうですか?複数の番号が連続してプッシュされた場合はどうなりますか?

その他の考慮事項: 実際の電卓で遊んでみてください。結果はいつ表示されますか? どのような操作順序で使用されますか? すべての操作には左側と右側があります。複数の数字を続けて押すとどうなりますか。小数はどうですか?クリアボタンはありますか?

于 2012-06-17T02:14:02.210 に答える
0

以前の入力を追跡する方法が必要です。ボタンをクリックするたびに、その情報とともにリクエストがサーバーに送信されますが ( $_GET)、古い入力は使用できなくなります。いくつかの方法:

非表示のフォーム要素

ユーザーがクリックするたびに、値を読み取り、非表示のフォーム要素でページに出力します。で既存のメソッドを使用して隠し要素の値を読み取る必要が$_GETあるたびに、数学的に何をする必要があるかを理解し、次の入力のために古いものと新しいものを隠し要素に再度保存します。

例については、このページを参照してください。

クッキー

setcookieユーザーが入力した値で Cookie を設定するために使用できます。ユーザーがボタンをクリックするたびに、Cookie から値を読み込み、現在の入力を追加します。ユーザーが=ボタンをクリックすると、Cookie データが読み込まれ、式が解析されます。簡単にして、式の一部をクッキーの区切り文字列のようなものに保存してoperand,operator,operand、結果を簡単に計算できるようにします。クリア ボタンを押すと、Cookie の値がクリアされます。

このtizag チュートリアルは、Cookie で何をしたいのかを示す非常に良い例です。

Javascript

明らかに最も簡単な方法です。状態が維持されるため、値をやり取りする必要はありません。

于 2012-06-17T02:18:45.620 に答える
0

他の人が述べたように、これを行う最善の方法は、クライアント側のコーディング (Javascript) を使用することです。ただし、PHP コードを記述する必要がある場合は、フォームを 2 回送信する必要があります。初めて、フォームの非表示の入力要素に入力変数 (最初の数値) を配置し、今回は追加の非表示の入力要素を使用して html を再度出力します。2 回目は、その非表示の入力値を探します。存在する場合は、新しい入力が 2 番目の数値であり、非表示の入力が最初の数値であることを意味します。非表示の入力の値を取得し、新しい数値を取得してそれらを加算し、結果を表示します。非表示の入力値を必ずリセットしてください。

于 2012-06-17T02:13:39.620 に答える