Оповещение PHP $ _POST - PullRequest
0 голосов
/ 31 марта 2012

У меня есть эта форма, которая позволяет вводить любое количество продукта от 1 до 10:

<form method='post' action='cart.php'>
<input type='number' name='quantitychange' size='2' min='1' max='10' value=".$_SESSION["itemsSelected"][$i][1].">
<input type='hidden' name='ProductID' value=".$_SESSION["itemsSelected"][$i][0].">
<input type='submit' value='Update'>
</form>

И еще одна форма (кнопка) для отображения выбора режимов оплаты:

<form action='cart.php' method='post'>
<input type='hidden' name='next'>
<input type='submit' value='Select Payment Mode'>
</form>

Я хочу, чтобы, когда пользователь ничего не вводил (1-я форма), напр. NULL или 0, я хочу отобразить окно с предупреждением «Количество продукта не может быть NULL или 0».

Вот мой код для этого:

if (isset($_POST['next'])) {
if ($_POST['quantitychange']==null || $_POST['quantitychange']==0) {
?>
<script type='text/javascript'>
alert('Product quantity can't be null or 0.');
</script>
<?php
}
else {
echo "
//Payment modes here
";
}
}

Ошибка в том, что даже когда пользователь вводит количественную ставку. 1–10, он по-прежнему отображает предупреждающее сообщение Любая помощь? Спасибо.

Кстати, тип ввода " number " работает только в браузере Google Chrome.

Ответы [ 3 ]

1 голос
/ 31 марта 2012

Используйте небольшую функцию javascript (или jQuery) для проверки формы перед ее публикацией.Пусть эта функция выдает предупреждение, если ваше условие не выполнено, а затем возвращает false.Если условие выполнено, верните true, и оно будет отправлено.

Отредактировано для добавления , поскольку это может привести к поиску в Google, я немного помогу с фрагментом кода, который использовал.Ниже приведен пример jQuery, который использовался в производстве для веб-приложения, которое я создал для своих сотрудников.document.form.doit.submit(); должен быть чисто javascript способ отправки формы.

<script type="text/javascript">
function subForm() {
    // document.form.doit.submit();
    if( test condition passes ) {
        $('#save_order').submit();
    }
}
</script>

<form id="save_order" action="oms_db.php" method="POST">
<input id="doit" type="button"
    value="i am a button" onClick="subForm();">
</form>
0 голосов
/ 31 марта 2012

Я предлагаю вам использовать

 if(empty($_POST['quantitychange'])) { echo 'yourerror'; }

Так как ваш сценарий намного чище. (http://php.net/manual/en/function.empty.php)

Обновление: Кроме того, вы не можете использовать две отдельные формы, как вы, ваш браузер публикует только то, что между

<form>
</form>

Использование только одного исправит вашу проблему.

0 голосов
/ 31 марта 2012

Я думаю, что у вас есть ошибки в ваших формах.Вместо следующего:

<input type='number' name='quantitychange' size='2' min='1' max='10' value=".$_SESSION["itemsSelected"][$i][1].">
<input type='hidden' name='ProductID' value=".$_SESSION["itemsSelected"][$i][0].">

вы должны использовать что-то вроде этого:

<input type='number' name='quantitychange' size='2' min='1' max='10' value="<?php echo $_SESSION["itemsSelected"][$i][1]; ?>">
<input type='hidden' name='ProductID' value="<?php echo $_SESSION["itemsSelected"][$i][0]; ?>">

Параметры значения в скрытых полях ввода должны быть выведены из PHP.Теперь у вас есть что-то похожее на простые строки ". $ _ SESSION [" itemsSelected "] [$ i] [0].".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...