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

Php 验证和计算来自子类别的选定复选框值。,php,Php,我创建了一个表单来显示主要类别及其子类别。此表单中的所有内容都是动态创建的。我之所以使用此表单是为了获取从用户中选择的子类别值。这里我使用复选框来实现这一目的 这是我用于此的PHP echo "<input type='checkbox' value='{cId:sId}' name='subcategory{$cId}[]' />{$sName}"; echo“{$sName}”; 然后生成类似这样的HTML <h3>Main Category 01 &l

我创建了一个表单来显示主要类别及其子类别。此表单中的所有内容都是动态创建的。我之所以使用此表单是为了获取从用户中选择的子类别值。这里我使用复选框来实现这一目的

这是我用于此的PHP

echo "<input type='checkbox' value='{cId:sId}' name='subcategory{$cId}[]' />{$sName}";
echo“{$sName}”;
然后生成类似这样的HTML

<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
主要类别01
子类别
子类别
主要类别02
子类别
子类别
主要类别01
子类别
子类别
在这种情况下,您可以看到动态生成的子类别名称。(子类别3、子类别4、子类别5)。这些值也可能根据所选的主要类别而改变。在这里,我想知道如何使用ISSET()验证子类别值。因为我不知道如何检测来自$\u POST数组的值

有人能帮帮我吗


谢谢。

我建议将名称从
子类别3[]
更改为
子类别[3][]

完成此操作后,执行
var\u转储($\u POST['subcategory'])
,您将看到如何发送信息,您将在单个数组中获得完整信息


除此之外,不确定您的问题可能是什么,您能否更具体地说明您遇到问题的地方?

使用该命名约定,您必须解析复选框名称中的数字:

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;
        }
    }
}
相反,您可以向数组中添加维度并使用:

<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

我需要检查每个主类别中至少选择了一个子类别。还需要限制为最多10个以选择子类别。。如果这些条件不匹配,则需要显示错误masseges..@TharangaNuwan为了正确地执行此操作,您需要在PHP端提供一个有效的主类别和子类别数组,您可以对照该数组进行检查以进行验证。
foreach($_POST['subcategory'] as $key => $checkboxList)
{
    foreach($checkboxList as $checkboxValue)
    {
        echo 'subcategory checked: ' . $key . ', value: ' . $checkboxValue;
    }
}