我有兩個表: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
存儲,以便可以在發送給管理員的電子郵件中調用它。
我不確定如何根據用戶選擇的下拉菜單中的值來存儲第二個值。
**** ****更新
謝謝@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
很確定你不得不把你的隱藏領域放在你的下拉列表之外。每當下拉選擇索引變化或類似情況時,您都可以更新隱藏字段的值。 –