Я заполняю выпадающее поле, используя значения из sql, но мне трудно получить drop down, чтобы вернуть значение. После долгих поисков я столкнулся с множеством идей, но никто из них не работал. Любая помощь приветствуется.
Соответствующий код, который у меня есть, показан ниже. Пожалуйста, будьте осторожны, это для меня совершенно новое!
Благодарю.
<?php
echo "<form action=\"theForm\" method=\"GET\">";
echo "<select name=\"courier_select\">";
$query = mysql_query("SELECT DISTINCT(courier) AS courier FROM reviews ORDER BY courier ASC");
while($row = mysql_fetch_array($query)){ echo "<option value=\"courier\">" . $row['courier'] . "</option>"; }
echo "</select>";
echo "</form>";
echo $_GET['theForm'];
?>
Поскольку вы явно устанавливаете атрибут value
элемента <option>
courier
, значение courier_select
всегда будет таким.
Вам нужно установить значение, которое извлекается из базы данных, следующим образом:
while( $row = mysql_fetch_array($query) )
{
echo '<option value="'.$row['courier'].'">'.$row['courier'].'</option>';
}
Теперь, когда вы пытаетесь получить доступ к значению элемента <select>
(используя $_GET['courier_select']
или $_POST['courier_select']
зависимости от метода формы, вы получите выбранное значение.
Стоит отметить, что семейство функций mysql_*
теперь устарело, и вы должны исследовать использование MySQLi или PDO, прежде чем вводить этот код в производство.
Кроме того, кажется, что вам не хватает базового понимания того, как работают элементы <form>
. Форма должна быть представлена, а атрибут action
определяет, куда должны быть отправлены представленные данные. Вам нужно будет обновить атрибут action
чтобы быть страницей на вашем веб-сайте, которая обрабатывает форму. Кроме того, удалите атрибут, чтобы отправить форму на страницу, на которой он находится.
Как только форма будет отправлена (вам понадобится <button type="submit">Submit</button>
), вы можете получить доступ к данным формы, используя $_GET
(потому что вы указываете method
GET
) или $_POST
если вы использовали метод POST
.
Оба $_GET
и $_POST
являются массивами, а их ключи относятся к именам элементов формы. Поэтому, чтобы получить значение courier_select
курсора courier_select, вы можете использовать:
$_GET['courier_select'];