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 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置