首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“以前”和“下一步”提交表单,在非常有限的范围内递增或减少值

“以前”和“下一步”提交表单,在非常有限的范围内递增或减少值
EN

Stack Overflow用户
提问于 2014-11-10 02:11:28
回答 1查看 204关注 0票数 1

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

所以,首先,值是零,我应该不能减少它,只是增加它。一旦我到了5岁,我也就不能再增加了,只是把它减少了。

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

代码语言:javascript
复制
<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>

警局。在我这里所做的这种形式中,0到5之间没有限制范围。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-10 02:45:51

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

代码语言:javascript
复制
<?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>

或者,您也可以使用会话,以便您的值将保持不变。然后你可以做负数和正数。简单的例子:

代码语言:javascript
复制
<?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>

样本输出

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26835709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档