选项选择值和选项组 PHP


option selected value and optgroup PHP

>我有一个与此类似的代码,它工作得很好,但我正在寻找一种使代码更短的方法,但我不知道该怎么做,因为它检查数据库中的选定值,然后选择选项 + 该选项有自己的选项组

<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 中做到这一点吗?任何帮助不胜感激,谢谢

您可以使用三元来实现此目的

<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>

另一种选择是使用javscript。只需将服务器放在数据标记中并在脚本中获取即可:

<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>