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 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应
  • ¥15 matlab基于pde算法图像修复,为什么只能对示例图像有效
  • ¥100 连续两帧图像高速减法
  • ¥15 如何绘制动力学系统的相图
  • ¥15 对接wps接口实现获取元数据
  • ¥20 给自己本科IT专业毕业的妹m找个实习工作
  • ¥15 用友U8:向一个无法连接的网络尝试了一个套接字操作,如何解决?
  • ¥30 我的代码按理说完成了模型的搭建、训练、验证测试等工作(标签-网络|关键词-变化检测)