";上一个“&";下一个“;submit Form,在非常有限的范围内递增或递减一个值


"Previous" & "Next" submit Form, incrementing or decreasing a value between a very limited range

我正在努力解决这个问题,但我无法解决,我需要一些帮助:我正在处理一个表单,有两个输入类型submit:一个增加+1,另一个减少-1,从0(这是下限)开始到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之间没有有限的范围。

只需通过当前使用的$_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>

样本输出

相关文章: