1

次の方法でフォームを作成したい:

[-] [value] [+]

PHP で 1 高い値または 1 低い値を取得するロジックをスクリプト化する方法がわかりません。

次のようなものがうまくいくと思いました:

<?php

$i = 0;

if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    if(isset($_POST['plus']))
    {
        $i++;
    }

    if(isset($_POST['min']))
    {
        $i--;
    }
}

?>

私のフォームは次のとおりです。

<form action="" method="post">
    <input type="submit" name="min" value="-"> <input type="text" value=<?php echo $i ?> >         <input type="submit" name="plus" value="+">
</form>

しかし、私は1か-1しか得ていません。誰かがこれを良い方法で行う方法を教えてもらえますか?

4

3 に答える 3

2

PHPはサーバー側でコードをロードし、ページがロードされたときに実行されます。同じページに留まりながら値を動的にインクリメント/デクリメントする場合は、JavascriptとjQueryの学習を検討することをお勧めします。

参照https ://developer.mozilla.org/en/JavaScript/

参照: http: //jQuery.com/

于 2012-07-12T18:32:52.293 に答える
2

これを試して:

<?php



if($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $i = $_POST['current_value'] || 1;
    if(isset($_POST['plus']))
    {
        $i++;
    }

    if(isset($_POST['min']))
    {
        $i--;
    }
}
?>

この:

<form action="" method="post">
    <input type="submit" name="min" value="-"> <input name="current_value" type="text" value=<?php echo $i ?> >         <input type="submit" name="plus" value="+">
</form>

リクエスト間で保持するために現在の値を取得する何らかの方法が必要です。ユースケースによっては、Rocket が言及しているようにデータベース ストレージが必要な場合や、現在の値を単純に戻すだけで十分な場合があります。

于 2012-07-12T18:37:05.340 に答える
1

コードで起こっていることは、最初に 0 に設定したグローバル変数をインクリメントしていることです。そのため、返される値は 1 または -1 のみです。これは、グローバル変数を使用する代わりに、毎回インクリメントする変数を渡すことで修正できます。そうすれば、各プラスとマイナスの間の値を保持し、リセットし続けることはありません。

于 2012-07-12T18:35:34.700 に答える