Получение значения из выпадающего списка, заполненного из базы данных SQL
Я успешно заполнил выпадающий список из базы данных MySQL. Теперь я хочу иметь возможность извлечь значение из этого раскрывающегося списка. Когда я извлекаю значение из выпадающего списка, это только значение позиции значения в списке.
Вот рабочий список ниже:
<?php
include_once("connection.php");
function fill_name($connect)
{
$output = '';
$sql = "SELECT name, id FROM notes";
$result = mysqli_query($connect, $sql);
while($row = mysqli_fetch_array($result))
{
$output .= '<option value="'.$row["id"].'">'.$row["name"].'</option>';
}
return $output;
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Patient Notes View</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
</script>
</head>
<body>
<br /><br />
<div class="container">
<form action="dropdown_selection.php" method="post">
<select name="name" id="name">
<option value="">Show All Patients</option>
<?php echo fill_name($connect); ?>
</select>
<input type="submit" name="submit" value="Submit" />
</form>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
</body>
</html>
И вот страница, на которую он ссылается:
<?php
$patient_name = $_POST['name'];
echo $patient_name
?>
Вывод либо 1,2,3,4, но я хочу, чтобы он выводил то, что выбрано в раскрывающемся списке.
Спасибо за вашу помощь
2 ответа
Вы можете изменить value
ваших элементов, или удалите их. Если элемент не имеет значения, его содержимое будет отправлено как значение.
Содержимое этого атрибута представляет значение, которое будет отправлено с формой, если этот параметр выбран. Если этот атрибут опущен, значение берется из текстового содержимого элемента option.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/option
Так что либо:
$output .= '<option value="'.$row["name"].'">'.$row["name"].'</option>';
или же
$output .= '<option>'.$row["name"].'</option>';
Выходное значение является правильным, так как вы устанавливаете значение параметра равным ID
не NAME
-> <option value="'.$row["id"].'">
поэтому вы получаете ID
s