我目前正在使用此垃圾代码为我的HTML下拉列表选择正确的selected="selected"
值。必须有一个更好的方法......可能有一个switch语句或其他什么?
有关如何提高效率的任何提示?
if ($quantity == 0)
{
echo '
<option selected="selected" value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9+">9+</option>
';
}
else if ($quantity == 1)
{
echo '
<option value="0">0</option>
<option selected="selected" value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9+">9+</option>
';
}
else if ($quantity == 2)
{
echo '
<option value="0">0</option>
<option value="1">1</option>
<option selected="selected" value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9+">9+</option>
';
}
else if ($quantity == 3)
{
echo '
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
<option selected="selected" value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9+">9+</option>
';
} etc....
答案 0 :(得分:3)
这应该适合你:
echo "<select>";
for($count = 0; $count < 10; $count++)
echo "<option " . ($quantity == $count ? 'selected': '') . " value='$count'>$count</option>";
echo "</select>";
答案 1 :(得分:2)
您可以遍历它们并打印每个HTML代码,如下所示:
for($i=0;$i<10;$i++){
$value=$i;
if($value==9) $value="9+";
if($i==$quantity){
echo '<option value="' . $value . '" selected="selected">' . $value . '</option>'
}
else{
echo '<option value="' . $value . '">' . $value . '</option>'
}
}
答案 2 :(得分:0)
循环遍历:
for($i = 0; $i < 9; $i++){
if($i == $quantity){
$selected = 'selected="selected"';
}else{
$selected = '';
}
$i2 = ($i == 9) ? '9+' : $i;
$select_options .= '<option value="'.$i2.'" '.$selected.'>'.$i2.'</option>';
}
echo $select_options;
编辑:看起来你无法在select it self中设置选中,如果你考虑它,这是非常愚蠢的。我已向html5标准人员提出投诉。在单个选项中设置选择元素的选定值是不合逻辑的。
答案 3 :(得分:0)
您只需使用循环:
$out='<option';
for($i=0;$i<10;i++){
if($quantity==$i)
$out.='selected="selected" ';
$out.=" value='$i'>$i</option";
echo $out;
}
答案 4 :(得分:0)
我经常插入所选的&#39;变量到循环
for($i=0;$i<10;$i++){
$selected = $i==$quantity? 'selected="selected"':'';
echo "<option value=\"$i\" $selected>$i</option>";
}