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.

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

报告相同问题?

悬赏问题

  • ¥15 labview程序设计
  • ¥15 为什么在配置Linux系统的时候执行脚本总是出现E: Failed to fetch http:L/cn.archive.ubuntu.com
  • ¥15 Cloudreve保存用户组存储空间大小时报错
  • ¥15 伪标签为什么不能作为弱监督语义分割的结果?
  • ¥15 编一个判断一个区间范围内的数字的个位数的立方和是否等于其本身的程序在输入第1组数据后卡住了(语言-c语言)
  • ¥15 游戏盾如何溯源服务器真实ip?
  • ¥15 Mac版Fiddler Everywhere4.0.1提示强制更新
  • ¥15 android 集成sentry上报时报错。
  • ¥50 win10链接MySQL
  • ¥15 抖音看过的视频,缓存在哪个文件