按下按钮可增加或减少相同的值

时间:2017-12-30 15:54:07

标签: php html button

我想在按下第一个按钮时增加值,如果我按第二个按钮减小相同的值。这是我的代码:

    <?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 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>