@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. Скорость тут не уместна
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
26 апр. 2024, в 10:01
500 руб./за проект
26 апр. 2024, в 09:18
500 руб./в час
26 апр. 2024, в 06:46
1500 руб./в час