0

10 と 40 の値を含む変数 $numA と $numB があります。

$numA = 10; $numB = 40;

各ボタン「+」と「-」をクリックするたびに、他の変数の値がデフォルト値に戻ります。ボタンを押すたびに、各変数の値がデフォルト値ではなく、それに割り当てられた新しい値に変化するようにします。

例:(「-」と「+」を押したとき)

desired output: 
$numA = 20;
$numB = 20;

$_SESSION メソッドを使用せずに実行できますか? ここに私のコードがあります:

<?php
    $numA = 10;

    if (isset($_POST["add"]))
    {
        $numA = $_POST["add"];
        $addition = $numA + 10;
        $numA = $addition;

    }

    $numB = 40;

    if (isset($_POST["substract"]))
    {
        $numB = $_POST["substract"];
        $substraction = $numB - 20;
        $numB = $substraction;
    }

?>

<form name="add" method="post">
    <input type="hidden"  name="add" value="<?php echo $numA ?>" />
    <input type="submit"  value="+" />
    <?php echo "ADDITION= ", $numA, '<BR>'; ?>
</form>

<form name="subtract" method="post">
    <input type="hidden"  name="substract" value="<?php echo $numB ?>" />
    <input type="submit"  value="-" />
    <?php echo "SUBSTRACTION= ", $numB, '<BR>'; ?>  
</form>

これで私を助けてください。説明をお願いします。ありがとうございました :-)

4

2 に答える 2

0

これを行う唯一の方法は、セッションまたは Cookie です (これらの値を全員で同じにしたくない場合は、フラット ファイルまたはデータベースに入れることができます)。を介して行うこともできますが$_GET、制御が難しくなります。

その理由は、スクリプト呼び出し間に固有の永続性がないためです。これは、Web ベースのプログラミングの性質です。呼び出しの間に何かを渡さない限り、各呼び出しは次から自閉症です。したがって、スクリプトでは、$numA何も永続化されていないため、常に 10 から開始します。代わりにセッション内で番号を設定すると、そのユーザーに対して保持されます

session_start(); // Have to call this before using session variables
if(!isset($_SESSION['numA'])) $_SESSION['numA'] = 10;

これで使用できるよう$_SESSION['numA']になり、スクリプトを実行すると値が増減します。

于 2013-10-23T02:36:33.757 に答える
0

スクリプトを実行するたびに$numAとの値を明示的に設定しているため、保存されている値を毎回上書きしています。$numBまた、2 つのフォームを扱っているため、1 セットの値のみが POST されるため、特定の変数を確認するだけで済みます。このコードは、必要なものを取得し (「+」または「-」をクリックして両方の値を 20 に変更します)、その後のクリックごとに数値が変化し続けます。

<?php

    if (isset($_POST["add"]))
    {
        $numA = $_POST["add"];
        $numA += 10;
    } else {
        $numA = 10;
    }


    if (isset($_POST["substract"]))
    {
        $numB = $_POST["substract"];
        $numB -= 20;
    } else {
        $numB = 40;
    }

?>

<form id="math" method="post">
    <input type="hidden"  name="add" value="<?php echo $numA ?>" />
    <input type="button" onclick="document.getElementById('math').submit();" value="+" />
    <?php echo "ADDITION= ", $numA, '<BR>'; ?>

    <input type="hidden"  name="substract" value="<?php echo $numB ?>" />
    <input type="button" onclick="document.getElementById('math').submit();" value="-" />
    <?php echo "SUBSTRACTION= ", $numB, '<BR>'; ?>  
</form>

それを超えて、データの永続性が必要な場合は、何らかのストレージ方法を選択する必要があります. セッション、Cookie、テキスト ファイル、$_GET 変数などの可能性がありますが、最終的には呼び出し間で渡されるデータを取得する必要があります。

于 2013-10-23T02:39:05.083 に答える