PHP - Как получить значение множественного флажка вместе с типом ввода - PullRequest
0 голосов
/ 15 мая 2018

Я хотел создать ошибку, когда выбрано определенное значение $ _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 (), и мне было тяжело его показывать. пожалуйста помогите

1 Ответ

0 голосов
/ 15 мая 2018

Ваш 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, чтобы обозначить, что они не хотят этого журнала.

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