我有来自另一个文件的dropdwon菜单项。我即将获得,我也想标记选定的值。当我尝试下面的代码。选中的值和相关的foreach项都以dropdwon显示。如何只保留一个。请建议
$html .= '<select>';
$html .= '<option value="">Select</option>';
foreach ($List as $ll) {
if ($ll== $this->ll) {
$html .= '<option selected value="'.$this->ll.'">width to '.$this->blockWidth.'%</option>';
}
$html .= '<option value="'.$ll.'"> width to '.$ll.'%</option>';
}
$html .= '</select>';
答案 0 :(得分:3)
将第二个赋值放在else
中,或将公共部分重构为单个表达式。我更喜欢后者。这是重构:
foreach ($List as $blockWidth) {
$html .= '<option '.
($blockWidth == $this->blockWidth ? 'selected' : '').
'value="'.$blockWidth.'"> width to '.$blockWidth.'%</option>';
}
请注意,if
中您当前拥有的条件现在位于$html .=
分配中,采用三元表达形式。</ p>
答案 1 :(得分:0)
在将$ List传递给循环之前过滤它!