有没有更快的方法来选择"选择" PHP中HTML下拉列表的值?

时间:2014-12-01 00:24:40

标签: php html

我目前正在使用此垃圾代码为我的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....

5 个答案:

答案 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>";

}