我在while循环中有一个具有multiple="true"属性的选择选项表单字段。如果select选项应该是多选的,我们应该在名称后面加一个像[]这样的方括号
参考:如何在php中获取选择框的多个选定值?
while($rowdocmap=$resdocmap->fetch_object()){<select class=";形式控制";name=";selMonths[]";multiple=";多个";required=";"必需">
<?php$lsmonths=爆炸(",",$rowdocmap->DM_Months)
对于($m=1;$m<=12;$m++){
$month=date('F',mktime(0,0,0,$m,1,date('Y'));
?
<选项值="<?php echo sprintf("%02d",$m);?><php if;<?php echo$month?></option><?php}>lt/选择>
}
在这种情况下,我如何从每个选择框数组
您的表单字段名称为"selMonths",因此当您的表单汇总为:时,PHP中将存在(没有多个)
$_POST['selMonths'];
这将与多选相同,尽管这次它将是一个阵列,并且您必须循环通过它来处理每个选定的光:
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)
}
}