dongxie45083 2018-05-14 23:34
浏览 77
已采纳

PHP - 如何获取多个复选框的值以及输入类型

I wanted to create an error when a specific value of $_POST['MAG'] is selected and the input type next to it isn't given.

I've tried to use other methods like if, else, foreach, for, and I still can't seem to get the right coding. I need really need help.

Its my first time coding and i'm taking online classes so its a bit difficult to get help from classmates or teacher

 <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";
            }
        }
    }


}

I tried using the empty() and i'm having a hard time makign it show. please help

  • 写回答

1条回答 默认 最新

  • dsfsfsfsfs55656 2018-05-14 23:49
    关注

    Your foreach is in the block that's executed when $_POST['MAG'] is empty, so there's nothing to loop over (it will actually get an error, since $_POST['MAG'] is undefined when none of the boxes are checked, and you can't use foreach on this).

    It should be in the else block.

    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";
            }
        }
    }
    

    But maybe you shouldn't bother with the checkboxes. Just let them fill in the quantity of each magazine, and use 0 to mean that they don't want that magazine.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?
  • ¥15 求daily translation(DT)偏差订正方法的代码
  • ¥15 js调用html页面需要隐藏某个按钮