-1

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

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

 <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",
);

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

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

我尝试了以下代码

     <select>
               <?

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

 </select>

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

我想要做的是在下拉列表中显示所有 12 小时选项(),但我想将 selected="selected" 添加到该特定选项?我是新手,不知道从哪里开始——这是我第一个真正的 PHP 项目。谢谢!

4

2 回答 2

1

1st of all you should use single quote inside double-quote and vice verse. 2nd, you should put name for select, and not for option.

so your code should look like that:

 <select name = 'hour1'>
           <?

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

 </select>

P.S. Mix quotes just to make it easier to read

于 2012-12-30T21:45:30.027 回答
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>
于 2012-12-30T21:33:37.157 回答