@4sadly

Можно ли это сделать быстрее?

Необходимо сохранять это значение, а потом уже и подставлять его, можно ли сделать это быстрее/красивее/лучше?
<select name="status">
    <option value="0" <?php if ($status == 0) { ?> selected disabled<?php } ?>>Выберите статус</option>
    <option value="1" <?php if ($status == 1) { ?> selected <?php } ?> >one</option>
    <option value="2" <?php if ($status == 2) { ?> selected <?php } ?> >two</option>
    <option value="3" <?php if ($status == 3) { ?> selected <?php } ?> >three</option>
</select>
  • Вопрос задан
  • 89 просмотров
Решения вопроса 2
FanatPHP
@FanatPHP
Чебуратор тега РНР
Быстрее нельзя.

Лучше можно. Зависит от определения что такое "лучше".
Можно например изменяющиеся значения записать в массив и вывести элементы в цикле.
Ответ написан
twobomb
@twobomb
<select name="status">
<?PHP
    foreach(["Выберите статус","One","two","three"] as $k=>$v){
        $selected = $status == $k && $status == 0?"selected disabled":($status == $k?"selected":"");
        echo "<option value=\"$k\" $selected >$v</option>\n";
    }
    ?>
</select>

Можно короче
<select name="status">
<?PHP
    foreach(["Выберите статус","One","two","three"] as $k=>$v)
        echo "<option value=\"$k\" ".($status == $k && $status == 0?"selected disabled":($status == $k?"selected":""))." >$v</option>\n";
    ?>
</select>


P.S. Скорость тут не уместна
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы