<form action="" method="post">
<?php echo "<select id='date' name='date' class='input' >";
echo '<option value="">Please Select Date</option>'?>
<?php
$sql1 = "SELECT Distinct date,day
FROM errorlog order by date";
$result1=mysql_query($sql1,$con);
if (!$result1)
die ("Could not retrieve date" .mysql_error());
for ($counter = 0; $row = mysql_fetch_row ($result1); $counter++)
print ("<option value = '$row[0]'>$row[1] - $row[0]</option>");
echo "</select>";
?>
</form>
即使提交,我也需要从下拉菜单中保存所选值,这意味着每当他从下拉菜单中选择一个值并点击提交时,值就会保留在选择
上答案 0 :(得分:0)
我建议在输出之前获取<select>
的数据,就像你可以将SQL和输出逻辑分开一点并保持整洁。
$sql1 = "SELECT Distinct date,day
FROM errorlog order by date";
$result1 = mysql_query($sql1,$con);
if (!$result1)
die ("Could not retrieve date" .mysql_error());
$data = array();
for ($counter = 0; $row = mysql_fetch_row ($result1); $counter++) {
$data[] = $row;
}
这将获取数据并暂时将其保存到$data
。一次担心。然后,如果用户通过POST提交,他提交的值将在$_POST['date']
。我们可以将该值与$data
中的值进行比较,如果selected="selected"
中的行与$data
匹配,则使用HTML if (!empty($_POST['date'])) {
$user_date = $_POST['date'];
} else {
$user_date = '';
}
echo '<form ...>'; // etc.
echo '<select name="date">';
foreach ($data as $row) {
if ($row[0] == $user_date) {
echo "<option value = '$row[0]' selected='selected'>$row[1] - $row[0]</option>";
}
else {
echo "<option value = '$row[0]'>$row[1] - $row[0]</option>";
}
}
echo '</select>';
属性。
selected="selected"
请注意,如果<select>
可以多次使用相同的值,则会发出多个{{1}}输出。