我允许我的用户选择一小时,分钟和上午/下午选项。后来,我希望他们能够编辑这个选项。为了这个问题,我将专注于小时,因为同样的逻辑也适用于其他人。
当我用户最初选择他们的小时时,他们从选项中选择一个值。代码如下所示:
<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项目。谢谢!
答案 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>