Php 提交时如何保存下拉菜单中的选定值

Php 提交时如何保存下拉菜单中的选定值,php,forms,submit,Php,Forms,Submit,我建议在输出数据之前先获取的数据,这样您就可以将SQL和输出逻辑稍微分开一点,使事情更整洁 <form action="" method="post"> <?php echo "<select id='date' name='date' class='input' >"; echo '<option value="">Please Select Date</option>'?&g

我建议在输出数据之前先获取
的数据,这样您就可以将SQL和输出逻辑稍微分开一点,使事情更整洁

<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>
这将获取数据并暂时保存到
$data
中。一次一个烦恼。然后,如果用户通过POST提交,他提交的值将在
$\u POST['date']
中。我们可以将该值与
$data
中的值进行比较,如果
$data
中的一行与该值匹配,则可以使用HTML的
selected=“selected”
属性

$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;
}
if(!empty($\u POST['date'])){
$user\u date=$\u POST['date'];
}否则{
$user_date='';
}
回显“”;//等
回声';
foreach($行数据){
如果($row[0]=$user\u date){
回显“$row[1]-$row[0]”;
}
否则{
回显“$row[1]-$row[0]”;
}
}
回声';

请注意,如果
可以多次具有相同的值,则这将发出多个
selected=“selected”
输出。

在编写HTML服务器端时,您需要手动输出所选
上的
selected
属性,我需要保留在列表中的值我无法检查每个值,因为每天我都会得到一个新值,我无法比较它@ljacqu i added action=”“我不需要页面刷新和更改下拉菜单上的值,除非我更改值并单击提交,否则我需要将值更改为我选择的值
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>';