2015-11-03 130 views
2

我在while循环中有一个选择选项表单字段,它具有multiple =“true”属性。如果选择选项应该被多选,我们应该在名称中加一个方括号,如[]。 如何从PHP数组中选择选项的值?

编号:How to get multiple selected values of select box in php?

while($rowdocmap=$resdocmap->fetch_object()){ 
<select class="form-control" name="selMonths[]" multiple="multiple" required="required"> 
<?php $lsmonths=explode(",", $rowdocmap->DM_Months);
for ($m=1; $m<=12; $m++) {
$month = date('F', mktime(0,0,0,$m, 1, date('Y')));
?>
<option value="<?php echo sprintf("%02d", $m); ?>" <?php if(in_array($m, $lsmonths)) echo 'selected="selected"'; ?>><?php echo $month?></option> <?php } ?> </select>
}

在这种情况下我怎么可以从每个选择框中的值阵列

回答

1

你的表单字段的名称是“selMonths”这样(没有多个)将在PHP中存在,当你的形式sumbitted为:

$_POST['selMonths']; 

这将是与多个选项一样,虽然此时这将是一个数组,并且你将不得不循环通过它来处理每个选定OPTON:

foreach($_POST['selMonths'] as $selectedMonth){ 

    // Do something with $selectedMonth 

} 

使用循环中的多个选择框,您将需要一种方法来识别每个选择框。使用循环中的元素($ rowdocmap-> id?),并将其添加到第一组方括号中的选择框的命名约定中,以在提交时创建多维数组。

<select name="selMonths[$rowdocmap->id][]" multiple="multiple" required="required"> 
... 

然后,你将能够访问他们

foreach($_POST['selMonths'] as $selectBox){ 
    foreach($selectBox as $key => $selectBoxOption){ 

     // Do something with $key ($rowdocmap->id) 
     // and $selectedMonth (selected option) 

    } 
} 
+0

IM具有while循环每一个人选择方框内,多个选择框是具有多个=“true”属性一个呈三角方式。你的答案不起作用。 – rahul

+0

@Plum我已更新答案 – MaggsWeb

+0

是的。绝对正确的答案。 – rahul