好消息是,这是可能的,而且在 PHP 中确实非常简单。首先,我们将所有选项及其各自的值放入一个数组中,如下所示:
<?php
$options=array('Extra, Extra small'=>'xxs','Extra small'=>'xs','Small'=>'s','Medium'=>'m','Large'=>'l','Extra Large'=>'xl','Extra, Extra Large'=>'xxl');
接下来,打开选择框并在 foreach 循环中调用选项数组...
echo '<select>';
foreach($options as $view=>$value){
您可能已经注意到,该数组包含看起来像 'Large'=>'l' 的字段,并且 foreach 循环调用选项为 $view=>$value。 $view 代表名称字段,在本例中为“Large”,$value 代表值字段“l”。如果您希望用户在选择框中看到与设置的值不同的选项,这一点很重要。
接下来我们创建变量 $selected ,它将用于确定 $row['value'] 和 $value 之间是否匹配...
$selected=($row['value'] == $value)? "selected" : "";
这与使用 if 和 else 语句设置变量相同,但更短。变量后面的第一部分询问 $row['value'] 是否等于 $value,如果等于则 $selected="selected" else (:) $selected 设置为空白。
接下来我们包括选项。因为它是在 foreach 循环中,所以我们只需要一行即可插入所有选项......
echo '<option '.$selected.' value="'.$value.'">'.$view.'</option>';
还记得上一步中的 $selected 变量吗?每次 foreach 循环遍历开头设置的选项数组的一部分时,它都会检查 $row['value'] 是否等于 $value。如果是这样,那么 $selected 将被设置为已选择,并且该特定选项将是页面加载时显示的选项。它继续遍历数组的其余部分,直到扫描完所有视图和值并返回它们各自的选项。
最后我们关闭 foreach 循环和选择框......
}
echo '</select>';
现在您已经有了一种将选择框选项设置为选定状态的自动方法。类似的模式可用于复选框、单选选择器、选项卡等。
完整代码...
<?php
$options=array('Extra, Extra small'=>'xxs','Extra small'=>'xs','Small'=>'s','Medium'=>'m','Large'=>'l','Extra Large'=>'xl','Extra, Extra Large'=>'xxl');
echo '<select>';
foreach($options as $view=>$value){
$selected=($row['value'] == $value)? "selected" : "";
echo '<option '.$selected.' value="'.$value.'">'.$view.'</option>';
}
echo '</select>';