在我的数据库中,我得到了一个包含2列(band
和band_id
)的表(title
)。在PHP中,我得到了存储所选id(selected_band_id
)的变量和一个从表中读取值并显示表单的表单。
表:
+---------+---------+
| band_id | title |
+---------+---------+
| 1 | Title 1 |
| 2 | Title 2 |
| 3 | Title 3 |
+---------+---------+
PHP:
<?php
$query = "SELECT `band`.`band_id`, `band`.`title` FROM `band`";
$result = mysqli_query($mysqli, $query);
if (!$result) {
die("Database query failed.");
}
?>
<?php
if (isset($_POST['select_band'])) {
$selected_band_id = $_POST['select_band'];
}
?>
<form method="post" name="form_band" action="">
<select name="select_band" onchange="javascript: submit()">
<?php
while ($row = mysqli_fetch_assoc($result)) {
echo "<option value=".$row["band_id"] . ">" .$row["title"] ."</option>";
}
?>
</select>
</form>
如何在表单中选择(显示)所选变量?它总是跳转到列表中的第一项。我无法用PHP解决这个问题。谢谢你的任何建议!
答案 0 :(得分:1)
<option value...
有一个标记selected
。这个你应该设置正确的乐队。因此,如果$ row [“band_id”] == $ selected_band_id,请在此selected
中设置<option>
。
答案 1 :(得分:0)
{{1}}
答案 2 :(得分:0)
这应修复您的PHP代码:
<?php
$query = "SELECT `band`.`band_id`, `band`.`title` FROM `band`";
$result = mysqli_query($mysqli, $query);
if (!$result) {
die("Database query failed.");
}
?>
<?php
if (isset($_POST['select_band'])) {
$selected_band_id = $_POST['select_band'];
}
?>
<form method="post" name="form_band" action="">
<select name="select_band" onchange="javascript: submit()">
<?php
while ($row = mysqli_fetch_assoc($result)) {
$selected = '';
if($selected_band_id == $row["band_id"]){
$selected = ' selected';
}
echo "<option value=".$row["band_id"] . $selected . ">" .$row["title"] ."</option>";
}
?>
</select>
</form>