如何从php中数组的select选项中获取值


How to get values from select option of array of arrays in php?

我在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)
    }
}