У меня есть две таблицы: event_title
перечисляет Event_title_ID, название и дату предстоящих событий, а event_reg
хранит данные из представленной формы.Сохраните второе значение как переменную, основанную на выпадающем меню выбора
Я использую цикл WHILE, чтобы получить данные из event_title
таблицы для заполнения выпадающего меню:
<select id="title" name="Event_title_ID">
<option value="0">Please Select One</option>
<?php
$q = "SELECT Event_title_ID, title, date FROM event_title ORDER BY date ASC";
$r = mysqli_query($connection, $q);
if (mysqli_num_rows($r) > 0) {
while ($row = mysqli_fetch_array ($r, MYSQLI_ASSOC))
{
echo '<option value="' . $row['Event_title_ID'] . '">' . $row['title'] . '</option>';
}
} else {
echo '<option>No event to register for at this time</option>';
}
?>
</select>
После выполнения проверки, я устанавливаю $ строки [ «Event_title_ID»], как $ Event_title_ID и вставки в таблицу event_reg
.
Основываясь на выборе выпадающего списка, мне нужно также сохранить $row['title']
как переменную $title
, чтобы ее можно было вызвать в электронном письме, отправленном администратору.
Я не уверен, как сохранить второе значение на основе выбора, который пользователь сделал из значения в выпадающем меню.
**** **** UPDATE
Спасибо @shut за ответ. Вот мой код:
В форме:
<select id="title" name="Event_title_ID">
<option value="0">Please Select One</option>
<?php // retrieve all the events from the event_title table
$q = "SELECT Event_title_ID, title, date FROM event_title ORDER BY date ASC";
$r = mysqli_query($connection, $q);
if (mysqli_num_rows($r) > 0) {
while ($row = mysqli_fetch_array ($r, MYSQLI_ASSOC))
{
echo '<option value="' . $row['Event_title_ID'] .'-'.$row['title']. '">' . $row['title'] . '</option>';
}
} else {
echo '<option>No event to register for at this time</option>';
}
?>
</select>
В проверке:
<?php
$errors = array();
if (isset($_POST['Event_title_ID']) && $_POST['Event_title_ID'] == '0')
{
$errors[] = '<p id="eventErr">Please select an event.</p>';
} else {
$event = explode('-' , $_POST['Event_title_ID']);
$Event_title_ID = $event[0];
$title = $event[1];
}
?>
Вы пробовали использовать [скрытые поля] (http://www.w3schools.com/tags/tryit.asp?filename=tryhtml5_input_type_hidden) ? –
Да, я пытался использовать скрытые поля - я должен был упомянуть об этом. Однако, пытаясь добавить его в синтаксис, результаты не вернулись, как надеялись. Например, добавление скрытого поля непосредственно после тега закрытия в цикле while приводило к тому, что в раскрывающемся списке отображался только один параметр, а остальные - за пределами раскрывающегося списка. Знаете ли вы, как разметить раскрывающийся список, используя скрытые поля, чтобы это поведение было исправлено? – Coleen
Довольно уверен, что вам нужно будет поместить свое скрытое поле вне выпадающего списка. Затем вы можете обновить значение скрытого поля каждый раз, когда выпадающее меню 'selectedIndex' изменяется или что-то подобное. –