2013-10-25 50 views
0

我有一个表格,每行有多行和多个“选择”下拉菜单。为了简单起见,我在这个例子中展示了2x2,但实际上它可能会达到5x5。HTML表格选择和数组,PHP

以简单的形式,我的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']; 
$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?或者我应该怎么做?

+0

你的意思是结合'occupancy'和'extrabed'一起发送的请求? – MahanGM

+0

是的。我需要能够构建下一个页面,为每个roomNumber提供入住和加床信息。 – TrapezeArtist

+0

那么问题是什么?你不想要两个'foreach's? – MahanGM

回答

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> 
+0

感谢重新编码。这工作完美。现在,我将要把这个逻辑放到真实的东西上。 我将注意力放在您的观点上,但这只是解决我的问题的一个非常简单的例子。我删除了所有多余的东西。 – TrapezeArtist

+0

@TrapezeArtist是的,这只是一个通知,有足够的人忘记。 – kelunik