Вернуть выпадающий список - php / sql

0

Я заполняю выпадающее поле, используя значения из 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'];

?>
Теги:
drop-down-menu

1 ответ

1
Лучший ответ

Поскольку вы явно устанавливаете атрибут 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'];
  • 0
    Бен, большое спасибо. Вы поставили меня на правильный путь и предложили мне узнать больше об элементе формы; сейчас работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню