& Quot; Предыдущий & Quot; & Амп; & Quot; Далее & Quot; отправить форму, увеличивая или уменьшая значение в очень ограниченном диапазоне

Я пытаюсь решить это, но я не могу, мне нужна помощь:
Я работаю над формой с 2 ​​типами ввода submit: один увеличивает +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>

Оплаченный В этой форме, которую я сделал здесь, нет ограничений в диапазоне от 0 до 5.

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>

Пример вывода

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector