У меня есть 5 комнат в столе для гостевого дома, и пользователь должен проверить комнату или комнаты, которые он хочет забронировать, и выбрать варианты, которые он хочет иметь, такие как количество человек, вариант завтрака, вариант ужина и кровать вариант.
Чтобы объяснить, что происходит, позвольте мне привести несколько примеров:
Допустим, мы называем 5 комнат в порядке появления:
Элемент номер
Земля Комната
Водная комната
Воздушная комната
Пожарная комната
Допустим, я проверяю Элементную комнату и Земную комнату с любым из выпадающих значений, я получаю следующее, например:
Элемент номер
Количество человек: 1
Обеденный курс: 120
Завтрак: 70
Кровать: King
&&
Земля Комната
Количество человек: 2
Ужин Курс: 200
Завтрак: 70
Кровать: 2 односпальных
Выше приведено правильное значение.
Но теперь я выбираю только комнату Воды или любую другую комнату, которая отображается под комнатой Элемента:
Я получаю:
Водная комната (или любая, кроме Элементной комнаты)
Количество человек: 0
Обеденный курс: 0
Завтрак: 0
Кровать: выберите размер кровати
Если я выберу каждую комнату из комнаты Элементов вниз, я получу все значения правильно, но если я выберу комнату Элементов и затем Комнату Воздуха (не выбирая комнату Земли), то я получу это:
Элемент номер
Количество человек: 1
Обеденный курс: 120
Завтрак: 70
Кровать: Кинг
&&
Воздушная комната
Количество человек: 0
Обеденный курс: 0
Завтрак: 0
Кровать: выберите размер кровати
Как будто мой код будет зацикливаться только для каждого значения сверху вниз в порядке, а не для других выбранных значений между ними, но проверенные номера всегда правильные, но не выбранные параметры.
Вот мой HTML:
<form class="booking-form" name="book-room-form" action="" id="contactForm" method="post" novalidate>
<?php foreach ( $rooms as $room ) : ?>
<input type="checkbox" class="form-check-input" name="room-selected[]" value="<?php echo $room->post_title; ?>">
<select class="num-person select-update" id="<?php echo 'r-' . $room->ID; ?>" name="people-select[]" required>
<option value="0" selected>Select Number of Persons</option>
<option value="1">1 person R600</option>
<option value="2">2 persons R800</option>
</select>
<select class="num-dinner select-update" id="<?php echo 'd-' . $room->ID; ?>" name="dinner-select[]">
<option value="0" selected>Select Dinner Course</option>
<option value="120">Two Course Dinner R120</option>
<option value="200">Three Course Dinner R200</option>
</select>
<select class="num-bf select-update" id="<?php echo 'b-' . $room->ID; ?>" name="breakfast-select[]">
<option value="0" selected>Select Breakfast Type</option>
<option value="70">Basic Breakfast R70</option>
<option value="120">Full Breakfast R120</option>
</select>
<select class="bed-select" name="bed-select[]">
<option selected>Select Bed Size</option>
<option value="King Bed">King Bed</option>
<option value="2 Single Beds">2 Single Beds</option>
</select>
<?php endforeach; ?>
<button name="submit-request" type="submit" class="btn btn-primary">Submit</button>
</form>
Вот мой код:
if(isset($_POST['submit-request'])) {
$room_selected = $_POST['room-selected'];
$numPeople = $_POST['people-select'];
$dinnerSelect = $_POST['dinner-select'];
$breakfastSelect = $_POST['breakfast-select'];
$bedSelect = $_POST['bed-select'];
$room = $room_selected;
$num = $numPeople;
$dinn = $dinnerSelect;
$bf = $breakfastSelect;
$bed = $bedSelect;
foreach ($room as $id => $key) {
//$key returns the room name
if($key) {
$result[$key] = array(
'num_person' => $num[$id],
'dinner' => $dinn[$id],
'breakfast' => $bf[$id],
'bed_type' => $bed[$id],
);
}
echo $key . '<br/>' . $num[$id] . '<br/>' . $dinn[$id] . '<br/>' . $bf[$id] . '<br/>' . $bed[$id] . '<br/>' ;
}
}