根据mysql查询自动从数组中选择选项作为默认值

时间:2012-12-30 21:27:41

标签: php mysql

我允许我的用户选择一小时,分钟和上午/下午选项。后来,我希望他们能够编辑这个选项。为了这个问题,我将专注于小时,因为同样的逻辑也适用于其他人。

当我用户最初选择他们的小时时,他们从选项中选择一个值。代码如下所示:

 <select>
               <?

        foreach($timehours as $key => $value){
        echo "<option name=\"hour1\" value=\"$key\">$value</option>";
        }
            ?>

 </select>

$ timehours列表如下所示:

    $timehours = array(
'01:'          => "1",
'02:'          => "2",
'03:'          => "3",
'04:'          => "4",
'05:'          => "5",
'06:'          => "6",
'07:'          => "7",
'08:'          => "8",
'09:'          => "9",
'10:'          => "10",
'11:'          => "11",
'12:'          => "12",
);

(我正在转换时间,这就是为什么它就像这样,并且我有一个从将它放入下拉列表之前切断“:”的子程序。所以不要介意它的一部分)

假设用户选择了08:30 pm,并使用$ hour从数据库调用08部分。

我尝试了以下代码

     <select>
               <?

        foreach($timehours as $key => $value){
        echo "<option name=\"hour1\" value=\"$key\">$hour</option>";
        }
            ?>

 </select>

结果是每个选项都是“08”(列出12次)。我尝试将$ key更改为$ hour,我得到的只是“08”的一个选项。

我想要做的是在下拉菜单中显示所有12小时选项()但是我想在特定选项上添加选择=“选中”?我是新手,不知道从哪里开始 - 这是我的第一个真正的PHP项目。谢谢!

2 个答案:

答案 0 :(得分:1)

首先,您应该在双引号内使用单引号,反之亦然。 2,你应该为select选择名称,而不是选项。

所以你的代码应该是这样的:

 <select name = 'hour1'>
           <?

    foreach($timehours as $key => $value){
    echo "<option value='$key'>$value</option>";
    }
        ?>

 </select>

P.S。混合引号只是为了更容易阅读

答案 1 :(得分:0)

纠正一个:

<select name='hour1'>
foreach($timehours as $key => $text){
    if($key==$hour){
        echo "<option selected value=\"$key\">$text</option>";
    }else{
        echo "<option value=\"$key\">$text</option>";
    }
 }
</select>