我有兴趣找到一种更有效的方法,在具有大量选项的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>
但是,如果我列出了大量选项,例如时区,手动添加此代码可能会很乏味。有更好的方法吗?
答案 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>