【问题标题】:"Previous" & "Next" submit Form, incrementing or decreasing a value between a very limited range“上一个”和“下一个”提交表单,在非常有限的范围内增加或减少一个值
【发布时间】:2014-11-10 02:11:28
【问题描述】:

我正在努力解决这个问题,但我做不到,我需要一些帮助: 我正在处理一个表单,有 2 个输入类型提交:一个增加 +1,另一个减少 -1,从零(这是下限)到 5(这是上限)。

所以,对于初学者来说,这个值是零,我应该不能减少它,只是增加它。一旦我到达 5,我也无法再增加它,只能减少它。

显然 5 的有限范围是一个例子,我需要这个值是一个变量。 此表单对于显示文件夹中的文件等项目非常有用。 非常感谢任何帮助。

<style>
.big_form{
    position: relative;
    width: 500px;
    margin: 0 auto;
}
.select_less{
    float: left;
}
.select_more{
    float: right;
}
.center{
    margin: 0 auto;
    position: relative;
    text-align: center;
}
</style>
<?php
if(isset($_POST['freak'])){
    if(isset($_POST['more'])){
        $current_value=$_POST['freak']+1;
        }else{
        $current_value=$_POST['freak']-1;
        }
    }else{
$current_value=0;   
}
echo("<div class='center'>". $current_value ."</div>");
echo("<br/>");
?>
<div class="big_form">
    <form method="post">
        <input type="hidden" name="freak" value="<?php echo($current_value);?>"/>
        <input class="select_less" type="submit" name="less" value="less"/>
        <input class="select_more" type="submit" name="more" value="more"/>
    </form>
</div>

PD。在我这里制作的这个表格中,没有0到5之间的限制。

【问题讨论】:

  • 问题到底是什么?
  • 我需要一个表格,正如我所说的:具有一个起始零值,我可以添加 +1 的增量,然后,如果我愿意,可以减少 -1。上限:5 下限:0
  • 您希望我们为您创建它?
  • 只是一个方向。已经搞定了,谢谢。

标签: php forms post range add


【解决方案1】:

只需通过当前使用的$_POST 值读取该值,然后添加一个检查该值是否小于零或大于 5:

<?php
// simple initialization
$freak = 0;

// if action is submitted
if(isset($_POST['submit'])) {
    $freak = $_POST['freak'];
    $action = $_POST['submit'];
    if($action == 'less') {
        $freak = ($freak - 1 < 0) ? 0 : $freak - 1;
    } elseif($action == 'more') {
        $freak = ($freak + 1 > 5) ? 5 : $freak + 1;
    }

}

?>
<div class="big_form">
    <form method="post">
        <input type="text" name="freak" value="<?php echo $freak; ?>" /><br/>
        <button type="submit" name="submit" value="less">Less</button>
        <button type="submit" name="submit" value="more">More</button>
    </form>
</div>

或者,您也可以使用会话,这样您的价值观就会保持不变。然后你可以做减号和加号。简单例子:

<?php
session_start();
// simple initialization
if(!isset($_SESSION['freak'])) {
    $_SESSION['freak'] = 0;
}

// if action is submitted
if(isset($_POST['submit'])) {
    $action = $_POST['submit'];
    if($action == 'less') {
        $_SESSION['freak'] = ($_SESSION['freak'] - 1 < 0) ? 0 : $_SESSION['freak'] - 1;
    } elseif($action == 'more') {
        $_SESSION['freak'] = ($_SESSION['freak'] + 1 > 5) ? 5 : $_SESSION['freak'] + 1;
    }

}

?>
<div class="big_form">
    <form method="post">
        <input type="text" name="freak" value="<?php echo $_SESSION['freak']; ?>" /><br/>
        <button type="submit" name="submit" value="less">Less</button>
        <button type="submit" name="submit" value="more">More</button>
    </form>
</div>

Sample Output

【讨论】:

  • @dream333r 确定没有问题。我很高兴这有帮助
猜你喜欢
  • 2022-08-18
  • 2019-02-05
  • 2019-04-14
  • 2023-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
相关资源
最近更新 更多