我创建了一个表单来从主类别中选择类别项目。在这里,我使用复选框来选择类别项。在我的表格中有许多主要类别,并有自己的子类别。示例课程及其主题。
使用此表单,我需要检查为一个类别选择了多少个子项目。而且我还需要查看在所有主要类别中选择的至少一个子类别,如果可以,则要限制最多10个子类别进行选择。
我试过这样的东西..但是这里计算所有选定的子类别。
if ( isset ( $_POST['sub-category']) && is_array( $_POST['sub-category'])) {
$totalCategory = count( $_POST['sub-category']);
if ( $totalCategory >= 1 && $totalCategory <= 10 ) {
$_SESSION['sub-category'] = $_POST['sub-category'];
$url = BASE_URI . 'register.php'; // Define the URL:
header("Location: $url");
exit(); // Quit the script.
} else {
echo 'ERROR: Please select atleast 1, not more than 10.';
}
} else {
echo 'ERROR: Please select atleast one category.';
}
更新
这是我用来从
生成的PHPecho "<input type='checkbox' value='{catId:subID}' name='subject{$lastCatId}[]' />{$lastCatName}";
他们的HTML生成这样的东西..
<h3>Main Category 01
<input type='checkbox' value='3:4' name='subject3[]' />sub category
<input type='checkbox' value='3:6' name='subject3[]' />sub category
<h3>Main Category 02
<input type='checkbox' value='4:6' name='subject4[]' />sub category
<input type='checkbox' value='4:2' name='subject4[]' />sub category
<h3>Main Category 01
<input type='checkbox' value='5:8' name='subject5[]' />sub category
<input type='checkbox' value='5:4' name='subject5[]' />sub category
问题是如何分别获得子类别的值,然后需要计算...
我希望有人帮助我... 谢谢。
答案 0 :(得分:1)
命名复选框时,请使用以下格式:
<input type="checkbox" name="subject[math][algebra]">
<input type="checkbox" name="subject[math][calculus]">
PHP中的:
<?php
$subjects = $_POST['subject'];
$math = $subjects['math'];
$algebra = $math['algebra'];
...
这是基本的想法。
答案 1 :(得分:1)
试试这个:
<h3>Main Category 01
<input type='checkbox' value='sub_cat_1' name='main_cat_1_subject[]' />sub category1
<input type='checkbox' value='sub_cat_2' name='main_cat_1_subject[]' />sub category2
<input type='checkbox' value='sub_cat_3' name='main_cat_1_subject[]' />sub category3
<input type='checkbox' value='sub_cat_4' name='main_cat_1_subject[]' />sub category4
<h3>Main Category 02
<input type='checkbox' value='sub_cat_1' name='main_cat_2_subject[]' />sub category1
<input type='checkbox' value='sub_cat_2' name='main_cat_2_subject[]' />sub category2
<input type='checkbox' value='sub_cat_3' name='main_cat_2_subject[]' />sub category3
<input type='checkbox' value='sub_cat_4' name='main_cat_2_subject[]' />sub category4
<h3>Main Category 01
<input type='checkbox' value='sub_cat_1' name='main_cat_3_subject[]' />sub category1
<input type='checkbox' value='sub_cat_2' name='main_cat_3_subject[]' />sub category2
<input type='checkbox' value='sub_cat_3' name='main_cat_3_subject[]' />sub category3
<input type='checkbox' value='sub_cat_4' name='main_cat_3_subject[]' />sub category4
和php:
if(isset($_POST['main_cat_1_subject']) && !empty($_POST['main_cat_1_subject'])){
$main_cat_subjects = $_POST['main_cat_1_subject'];
//do the stuff.
foreach($main_cat_subjects as $index => $main_cat_subject){
//Sub category items by index here.
}
} else {
echo 'Please select atleast on subject for Main Category 1';
//redirect or die
}
对所有类别重复此循环,并更改$_POST
数组中的名称。
答案 2 :(得分:1)
将您的HTML代码更改为
<h3>Main Category 01
<input type='checkbox' value='' name='sub_cat1[]' />sub category
<input type='checkbox' value='' name='sub_cat1[]' />sub category
<input type='checkbox' value='' name='sub_cat1[]' />sub category
<input type='checkbox' value='' name='sub_cat1[]' />sub category
<h3>Main Category 02
<input type='checkbox' value='' name='sub_cat2[]' />sub category
<input type='checkbox' value='' name='sub_cat2[]' />sub category
<input type='checkbox' value='' name='sub_cat2[]' />sub category
<input type='checkbox' value='' name='sub_cat2[]' />sub category
<h3>Main Category 01
<input type='checkbox' value='' name='sub_cat3[]' />sub category
<input type='checkbox' value='' name='sub_cat3[]' />sub category
<input type='checkbox' value='' name='sub_cat3[]' />sub category
<input type='checkbox' value='' name='sub_cat3[]' />sub category
并提交表格,该表格将为您提供
$count_cat1 = count($_POST['sub_cat1']);
$count_cat2 = count($_POST['sub_cat2']);
$count_cat3 = count($_POST['sub_cat3']);
您可以将其放在循环中以减少代码长度。