PHP - как получить значение нескольких флажков вместе с типом ввода

Я хотел создать ошибку, когда выбрано определенное значение $ _POST ['MAG'], а тип ввода рядом с ним не указан.

Я пробовал использовать другие методы, такие как if, else, foreach, for, но все еще не могу получить правильную кодировку. Мне действительно нужна помощь.

Это мой первый раз, когда я пишу код, и я беру онлайн-уроки, поэтому немного сложно получить помощь от одноклассников или учителя.

 <form method = "post" action = "">

  Select which magazine and type qty of subscriptions:<br><br>

  <input type = "checkbox" name = "MAG[]" value = "TREASURE"><b>Treasure Magazine</b> | Qty of Subscriptions: <input type = "number" name = "TNUMSUBS" size = "5px">
  <br>

  <input type = "checkbox" name = "MAG[]" value = "VESSEL"><b>Vessel Magazine</b> | Qty of Subscriptions: <input type = "number" name = "VNUMSUBS" size = "5px">
  <br>

  <input type = "checkbox" name = "MAG[]" value = "MECH"><b>MECH Magazine</b> | Qty of Subscriptions: <input type = "number" name = "MNUMSUBS" size = "5px">
  <br><br>

  <p><input type = "submit" name = "submit"></p>

</form>


<?php
if (isset($_POST["submit"]))
{
$vNumSubs = $_POST['VNUMSUBS'];
$tNumSubs = $_POST['TNUMSUBS'];
$mNumSubs = $_POST['MNUMSUBS'];

    if (empty($_POST["MAG"]))
    {
        print "You didn't select a magazine";

        foreach($_POST['MAG'] as $magazine)
        {

            if ($magazine == "TREASURE" && empty($tNumSubs))
            {
            print "type quantity";
            }

            if ($magazine == "VESSEL" && empty($vNumSubs))
            {
                print "type quantity";
            }

            if ($magazine == "MECH" && empty($mNumSubs))
            {
                print "type quantity";
            }
        }
    }


}

Я пробовал использовать empty (), и мне трудно заставить его показать. пожалуйста помоги

упростите себе жизнь, укажите ключи массива MAG самостоятельно

user9487972 15.05.2018 01:41
$_POST['MAG'] получит все данные name = "MAG[]"
hungrykoala 15.05.2018 03:41
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
24
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ваш foreach находится в блоке, который выполняется, когда $_POST['MAG'] пуст, поэтому нечего перебирать (на самом деле вы получите ошибку, поскольку $_POST['MAG'] - это undefined, когда ни один из флажков не отмечен, и вы не можете использовать foreach в этом случае).

Он должен быть в блоке else.

if (empty($_POST["MAG"])) {
    print "You didn't select a magazine";
} else {
    foreach($_POST['MAG'] as $magazine)
    {
        if ($magazine == "TREASURE" && empty($tNumSubs))
        {
            print "type quantity";
        }

        if ($magazine == "VESSEL" && empty($vNumSubs))
        {
            print "type quantity";
        }

        if ($magazine == "MECH" && empty($mNumSubs))
        {
            print "type quantity";
        }
    }
}

Но, возможно, вам не стоит заморачиваться с флажками. Просто позвольте им указать количество каждого журнала и использовать 0, чтобы обозначить, что они не хотят этого журнала.

Большое спасибо. Это действительно очень помогло! Все еще новичок в этом, так что всегда приятно получать отзывы!

Jamie Oh 17.05.2018 07:29

Другие вопросы по теме