dongtaoxue4674 2013-01-16 10:31
浏览 8
已采纳

验证和计算来自子类别的选定复选框值。

I have created a form to display main categories and its subcategories. Everything in this form is creating dynamically. Why I use this form is to get subcategory values which selected from users. Here I use checkboxes for this purpose.

This is PHP I use for this..

echo "<input type='checkbox' value='{cId:sId}' name='subcategory{$cId}[]' />{$sName}";

Then generating HTML something like this...

<h3>Main Category 01 
    <input type='checkbox' value='3:4' name='subcategory3[]' />sub category
    <input type='checkbox' value='3:6' name='subcategory3[]' />sub category

<h3>Main Category 02 
    <input type='checkbox' value='4:6' name='subcategory4[]' />sub category
    <input type='checkbox' value='4:2' name='subcategory4[]' />sub category

<h3>Main Category 01 
    <input type='checkbox' value='5:8' name='subcategory5[]' />sub category
    <input type='checkbox' value='5:4' name='subcategory5[]' />sub category

In this case you can see subcategory names generating dynamically. (subcategory3, subcategory4, subcategory5). Those values also may change according to the selected main category. Here I would like to know how I validate subcategory values with ISSET(). Because I dont know to detect what are values come from $_POST array..

Can someone help me out..

Thank You.

  • 写回答

2条回答 默认 最新

  • dpw5865 2013-01-16 10:40
    关注

    With that naming convention, you will have to parse the number out of the checkbox name:

    foreach($_POST as $key => $value)
    {
        if(strpos($key, 'subcategory') === 0 && is_array($value))
        {
            $subCategoryNumber = substr($key, 11);
    
            // loop over the values for this subcategory array:
            foreach($value as $checkboxValue)
            {
                echo 'subcategory checked: ' . $subCategoryNumber . ', value: ' . $checkboxValue;
            }
        }
    }
    

    Instead of that, you could add a dimension to your array and use:

    <input type='checkbox' value='3:4' name='subcategory[3][]' />sub category
    
    <input type='checkbox' value='4:6' name='subcategory[4][]' />sub category
    
    <input type='checkbox' value='5:8' name='subcategory[5][]' />sub category
    

    This would mean you can access them in $_POST['subcategory'] as an array:

    foreach($_POST['subcategory'] as $key => $checkboxList)
    {
        foreach($checkboxList as $checkboxValue)
        {
            echo 'subcategory checked: ' . $key . ', value: ' . $checkboxValue;
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)
  • ¥15 关于并联谐振电磁感应加热
  • ¥60 请查询全国几个煤炭大省近十年的煤炭铁路及公路的货物周转量
  • ¥15 请帮我看看我这道c语言题到底漏了哪种情况吧!
  • ¥66 如何制作支付宝扫码跳转到发红包界面
  • ¥15 pnpm 下载element-plus
  • ¥15 解决编写PyDracula时遇到的问题