html — значение выбранного параметра и переполнение стека optgroup

у меня есть код, подобный этому, который довольно хорошо работает, но я ищу способ сделать коды короче, но я понятия не имею, как это сделать, потому что он проверяет выбранное значение из БД, а затем выбрать опцию + опция имеет собственную оптгруппу

<select name="server">
<?php if ($server == 'A') { ?>
<optgroup label="Label 1">
<option value="A" selected="selected">A</option>
<option value="B">B</option>
</optgroup>
<optgroup label="Label 2">
<option value="C">C</option>
<option value="D">D</option>
</optgroup>
<?php } else if ($server == 'B') { ?>
<optgroup label="Label 1">
<option value="A">A</option>
<option value="B" selected="selected">B</option>
</optgroup>
<optgroup label="Label 2">
<option value="C">C</option>

and so on...

Вы, ребята, имели какие-либо идеи, как это сделать в php?
любая помощь приветствуется, спасибо

0

Решение

Вы можете использовать троичный для достижения этой цели

<select name="server">
<optgroup label="Label 1">
<option value="A" <?php $server == 'A' ? echo 'selected="selected"' : ''; ?>>A</option>
<option value="B" <?php $server == 'B' ? echo 'selected="selected"' : ''; ?>>B</option>
</optgroup>
<optgroup label="Label 2">
<option value="C">C</option>
<option value="D">D</option>
</optgroup>

Другим вариантом будет использование JavaScript. Просто поместите сервер в тег данных и извлеките его в сценарий:

<select name="server" data-server="<?= $server; ?>">
<optgroup label="Label 1">
<option value="A">A</option>
<option value="B">B</option>
</optgroup>
<optgroup label="Label 2">
<option value="C">C</option>
<option value="D">D</option>
</optgroup>
</select>

<script>

var select = document.querySelector('select[name="server"]');
var server = select.getAttribute('data-server');
select.querySelector('option[value="' + server + '"]').setAttribute('selected', 'selected');

</script>
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]