使用php加载具有所选选项的选择框

时间:2013-11-25 18:55:53

标签: php mysql

您好我遇到了一个问题,现在我确实有一个解决方案,但它涉及许多if语句,我想知道它有一个更整洁的选项

我想要的是

<select>
<option value ="00:00">00:00</option>
<option value ="01:00">01:00</option>
<option value ="02:00">02:00</option>
<option value ="03:00">03:00</option>
</select> 

然后从中获取一个值并选中该框 我目前正在考虑的是

$selectedbox = array();
if($tablevalue == "00:00"){
$selectedbox[0] = 'selected="selected"';
}
if($tablevalue == "01:00"){
$selectedbox[1] = 'selected="selected"';
}

然后

<select>
<option value ="00:00" <?php echo $selectedbox[0]; ?>>00:00</option>
<option value ="01:00" <?php echo $selectedbox[1]; ?>>01:00</option>
<option value ="02:00" <?php echo $selectedbox[2]; ?>>02:00</option>
<option value ="03:00" <?php echo $selectedbox[3]; ?>>03:00</option>
</select>

是否有更简单的方法来获得相同的结果

3 个答案:

答案 0 :(得分:2)

for ($i = 0; $i <= 3; $i++) {
    $sel = ("0{$i}:00" == $tablevalue) ? ' selected="selected"' : '';
    echo <<<EOL
<option value="0{$i}:00"{$sel}>0{$i}:00</option>

EOL;
}

答案 1 :(得分:1)

我会删除if语句,并将代码与选项标记一起放在三元组中。例如:

<select>
<option value ="00:00" <?=$tablevalue=="00:00"?'selected="selected"':''?>>00:00</option>
<option value ="01:00" <?=$tablevalue=="01:00"?'selected="selected"':''?>>01:00</option>
<option value ="02:00" <?=$tablevalue=="02:00"?'selected="selected"':''?>>02:00</option>
<option value ="03:00" <?=$tablevalue=="03:00"?'selected="selected"':''?>>03:00</option>
</select>

答案 2 :(得分:-1)

查看PHP switch语句:http://php.net/manual/en/control-structures.switch.php

我想你会想要这样的东西:

switch ($tablevalue) {
    case "00:00":
        $selectedbox[0] = 'selected="selected"';
        break;
    case "01:00":
        $selectedbox[0] = 'selected="selected"';
        break;
    //etc, etc
}

如果你总是在比较同一个变量,PHP switch是处理if语句的更好方法。