2012-07-03 4 views
1

Я хочу создать массив, содержащий несколько массивов, в которых хранятся результаты флажков.form array of array checkboxes

category->subcategory->choice 

Я не уверен, если это вообще возможно, но я хочу что-то вроде этого, может быть:

<input type="hidden" name="category[]" /> 
<input type="checkbox" name="subcat1[]" value="something" /> 
<input type="checkbox" name="subcat1[]" value="somewhere" /> 
<input type="checkbox" name="subcat2[]" value="something" /> 
<input type="checkbox" name="subcat2[]" value="somewhere" /> 

Я хочу, чтобы быть в состоянии взять на себя петлю категории массива через него с PHP, как это:

foreach($_POST['category'] as $sub){ 
    switch($sub){ 
     case 'subcat1': 
      foreach($sub as $val){ 
       //prepare $val to insert into database X 
      } 
      break; 
     case 'subcat2': 
      foreach($sub as $val){ 
       //prepare $val to insert into database Y 
      } 
      break; 
    } 
} 
+0

Да, это возможно, но что конкретно представляет собой ваша проблема? –

ответ

1

Это даже проще, чем вы думаете:

<input type="checkbox" name="category[subcat1][]" value="something" /> 
<input type="checkbox" name="category[subcat1][]" value="somewhere" /> 
<input type="checkbox" name="category[subcat2][]" value="something" /> 
<input type="checkbox" name="category[subcat2][]" value="somewhere" /> 

И потом:

foreach($_POST['category'] as $subCategoryName) { 
    foreach ($subCategoryName as $item) { 
     // ... 
    } 
} 

Если намеченное для лечения различных подкатегорий не похоже, хотя, было бы лучше, если бы вы только что отправили их в разные массивы.

+0

Я понял, что будет меньше кода, если бы я использовал 2D-массив, а затем использовал переключатель, может просто сделать это. – Ray