2017-12-30 37 views
0

私が最初にボタンを押したときに値を増やしたいと私は同じvalue.Hereを小さくするために第2のボタンを押した場合、私のコードです:押すと同じ値を増減させるボタン

<?php 

    session_start(); 

    if (isset($_POST['btn1'])) { 
     $_SESSION['clicks'] += 1 ; 
     echo $_SESSION['clicks']; 
    } 

    else { if(isset($_POST['btn2'])){ 

     $_SESSION['click'] = $_SESSION['clicks'] + ($_SESSION['click']- 1) ; 
     echo $_SESSION['click']; 
    } 
    } 
    ?> 
    <br><br><br><br> 
    <form action="" method="post"> 
    <input type="submit" name="btn1" value="+1"> 
    <input type="submit" name="btn2" value="-1"> 
    </form> 

答えて

2

あなたはセッションを追加/削除しようとする前に一度セッションが設定されていることを確認し、同じセッション名clicksを使用してください。これは、推測した減算にはclickです。

<?php 

    session_start(); 
    if(!isset($_SESSION['clicks'])) $_SESSION['clicks']=0; 

    if(isset($_POST['btn1'])) { 
     $_SESSION['clicks']++; 
    } elseif(isset($_POST['btn2'])){ 
     $_SESSION['clicks']--; 
    } 
    echo 'clicks: '. $_SESSION['clicks']; 
?> 




<form action="" method="post"> 
    <input type="submit" name="btn1" value="+1"> 
    <input type="submit" name="btn2" value="-1"> 
</form> 
+0

、感謝 –

0

セッション変数が空の場合は、必ずそれを宣言してください。私の例でコードを少し変更したのは、ボタンの値が変数を変更することができるからです。つまり、if elseを持たなくてもいいということです。 +2や-2のような新しいボタンを追加すると、PHPコードを変更する必要がなくなり、メンテナンス性が向上します。また、同じ変数名を使用するように注意してください。私は最初の使用後に入力ミスを減らすためにそれらをコピー/ペーストする傾向があります。

それは、このコードを働いた
<?php 
session_start(); 

if(! empty($_POST)) { 

    if(empty($_SESSION['click'])) { 

     $_SESSION['click'] = 0; 
    } 

    $_SESSION['click'] += $_POST['btn']; 
} 

print $_SESSION['click']; 
?> 

<form action="" method="post"> 
<input type="submit" name="btn" value="+1"> 
<input type="submit" name="btn" value="-1"> 
</form> 
+0

あなたは自分のコードが失敗した理由を説明することができ、あなたは、彼らが今持っているものと比較して何をしますか? –

+0

なぜdownvote?それは完全に動作します! – Phright

+0

誰もドロップインされたコードから学ぶことはありません。 RamRaiderはそうしました、あなたはそれから学び、より良い答えを提供することができました。 OPはなぜそれが失敗したのかを知りたいかもしれません。 –

関連する問題