0

メインカテゴリーからカテゴリーアイテムを選択するフォームを作成しました。ここでは、チェックボックスを使用してカテゴリ項目を選択します。私のフォームには、多くのメイン カテゴリがあり、独自のサブカテゴリがあります。コースの例とその科目。

このフォームでは、1 つのカテゴリに対して選択されたサブアイテムの数を確認する必要があります。また、すべてのメインカテゴリで少なくとも1つのサブカテゴリが選択されていることを確認する必要があり、問題がなければ選択するサブカテゴリを最大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.';  
}

アップデート:

これは私が生成するために使用するPHPです

echo "<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

問題は、サブカテゴリの値を個別に取得してからカウントする必要がある方法です...

誰かが私を助けてくれることを願っています...ありがとう。

4

3 に答える 3

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']);

ループに入れてコード長を短くすることができます。

于 2013-01-16T04:56:16.793 に答える
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'];
...

それが基本的な考え方です。

于 2013-01-16T04:54:20.270 に答える
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配列内の名前を変更します。

于 2013-01-16T04:55:50.150 に答える