在我的表单中,我有一个选择输入字段,其中填充了来自mysql db的数据。我试图在表academy
的此选择输入字段中显示所选值,其中status
为active
或inactive
。在下面的示例中,学院的状态为inactive
,但在尝试回显所选值时,它显示不正确; active
代替inactive
。这是一个EXAMPLE。
<form action="" method="post">
//Read results from database
$db_select1 = $db_con->prepare("
SELECT a.name,
a.academy_id,
a.status
FROM academy a
WHERE a.academy_id = 15
");
if (!$db_select1) return false;
if (!$db_select1->execute()) return false;
$results1 = $db_select1->fetchAll(\PDO::FETCH_ASSOC);
if (empty($results1)) return false;
foreach ($results1 as $value1){
$result1 .= "<strong>Academy Name: </strong>".$value1['name']."</br>";
$result1 .= "<strong>Academy ID: </strong>".$value1['academy_id']."</br>";
$status = $value1["status"];
}
echo $result1;
echo $resutl1;
?>
<strong>Academy Status:</strong>
<?php
//Populate select input
$table_name2 = "academy";
$column_name2 = "status";
echo "<select name=\"$column_name2\"><option>Select one</option>";
$sql1 = 'SHOW COLUMNS FROM '.$table_name2.' WHERE field="'.$column_name2.'"';
$row1 = $db_con->query($sql1)->fetch(PDO::FETCH_ASSOC);
$selected = '';
foreach(explode("','",substr($row1['Type'],6,-2)) as $option) {
if ($status == $option) // $status is the status of your record from the database
$selected = "selected";
echo "<option value='$option'" . $selected. ">$option</option>";
}
echo "</select></br>";
?>
<input type="submit" name="submit" value="Update">
</form>
学院表中的存储值:
+------------+-------------------+----------+
| academy_id | name | status |
+------------+-------------------+----------+
| 15 | Brown High School | Inactive |
+------------+-------------------+----------+
答案 0 :(得分:1)
尝试SELECTED=SELECTED
foreach(explode("','",substr($row1['Type'],6,-2)) as $option) {
if ($status == $option){
$selected = "selected=selected";
}else{
$selected=''
}
echo "<option value='$option'" . $selected. ">$option</option>";
}