0

我有一个包含多行的表单,每行中有多个“选择”下拉菜单。为简单起见,我在此示例中显示了 2x2,但实际上它可以达到 5x5。

在简化形式中,我的 HTML 表单如下所示:

<form action="aaa2.php" method="post" name="book">

<?php $roomNumber=101; ?> 
Normal Occupancy 
<select name="occupancy[101]"> 
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Extra Beds
<select name="extrabed[101]"> 
<option value="1">1</option>
<option value="2">2</option>
</select>
<br><br>
<?php $roomNumber=101; ?>
Normal Occupancy 
<select name="occupancy[102]"> 
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
Extra Beds
<select name="extrabed[102]"> 
<option value="1">1</option>
<option value="2">2</option>
</select>
<br><br>

<input name="Submit" type="submit" value="submit">
</form>

在下一页上,我可以轻松地显示第一个下拉列表中的信息:

<?php 
$occupancy_array=$_POST['occupancy'];
foreach($occupancy_array as $roomNumber=>$occupancy) {
echo "Room ".$roomNumber.". Normal occupancy is ".$occupancy.".<br>";   
}
?>

当我尝试使用第二个下拉列表中的信息时,我的问题就出现了。我已经走到这一步了

<?php 
$occupancy_array=$_POST['occupancy'];
$extrabed_array=$_POST['extrabed'];
foreach($occupancy_array as $roomNumber=>$occupancy) {
echo "Room ".$roomNumber.". Normal occupancy is ".$occupancy." and the room will take ".$extrabed." extra beds.<br>";   
}
?>

但显然我需要第二个数组的另一条 foreach 行。我已经在系列中尝试过它,并且我已经尝试将它嵌套在第一个 foreach 中,但都不能正常工作。有没有一种方法可以将它们全部合并到一个 foreach 中?或者我应该怎么做?

4

1 回答 1

2

试试这个:

<?php 

$occupancy_array=$_POST['occupancy'];
$extrabed_array=$_POST['extrabed'];

foreach($occupancy_array as $roomNumber => $occupancy) {
    echo "Room $roomNumber. Normal occupancy is $occupancy and the room will take ".$extrabed_array[$roomNumber]." extra beds.<br>";   
}

您应该注意注射,因为任何用户都可以发送请求

occupancy[<script>...</script>] = <script>...</script>
于 2013-10-25T17:05:08.833 回答