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.
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;
}
}
I would recommend changing the name from subcategory3[]
to subcategory[3][]
.
After you do this, do a var_dump($_POST['subcategory'])
, and you'll see how to information is sent, you will have the full information in a single array.
Other than this, not sure what your problem could be, can you be a bit more specific on where you're having trouble?