PHP高效表单选择大型选项集

时间:2011-11-02 00:53:51

标签: php forms

我有兴趣找到一种更有效的方法,在具有大量选项的select标签上选择正确的选择选项。

以下精简版示例正常运行:

<?php
    $favColor = 'blue';
?>
<form>
    <label for="favColorSelect">Favorite Color:</label>
    <select id="favColorSelect" name="favColorSelect">
        <option value="">Select a Color</option>
        <option value="red" <?php if($favColor === 'red'){ echo 'selected'; } ?>>Red</option>
        <option value="green" <?php if($favColor === 'green'){ echo 'selected'; } ?>>Green</option>
        <option value="blue" <?php if($favColor === 'blue'){ echo 'selected'; } ?>>Blue</option>
    <select>
</form>

但是,如果我列出了大量选项,例如时区,手动添加此代码可能会很乏味。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

如果您可以将它放在数组/集合中,则可以检查每次迭代。否则,就所有意图和目的而言,你拥有的是一种充分的方法。

可能乏味,但关于典型。

迭代方法,供参考:

$colors = array('Red','Green','Blue');
$selColor = 'red';

printf('<selection name="color">');
foreach ($colors as $color){
  printf('<option value="%s" %s>%s</option>',
    strtolower($color), $color===$selColor?'selected':'', $color);
}
printf('</select>');

您可以顺便缩短代码(假设您可以使用短手进行直接输出):

<option value="red" <?= ($favColor==='red'?'selected':''); ?>>Red</option>