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>";   
}
?>

私の問題は、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." extra beds.<br>";   
}
?>

しかし明らかに、2 番目の配列には別の foreach 行が必要です。シリーズで試してみましたが、最初の foreach 内にネストしてみましたが、どちらも正しく動作しません。すべてを 1 つの 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 に答える