使用 php 将选项设置为选中

Set option as selected with php

如何使用 PHP 将 select 选项设置为发送表单时选择的选项?这是我卡住的代码:

<?php
  if(isset($_POST['btSubmit'])) {
    $selectedOption = $_POST['s']; // Value of selected option … but how to use it below?
  }
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST">
  <select name="s">
    <option value="" selected disabled>-- choose one --</option>
    <option value="a">choose a</option>
    <option value="b">choose b</option>
  </select>
  <input type="submit" name="btSubmit">
</form>

因此,当您在下次加载页面时发送带有 selected 的表单时,a 应该默认为 selected。

只需将 selected="selected" 属性添加到您在 $_POST['s'] 下收到的 option 标签。

<?php
  $selectedOption = '';
  if(isset($_POST['btSubmit'])) {
    $selectedOption = $_POST['s']; // Value of selected option … but how to use it below?
  }

  function injectSelectedAttribute($selectedOption, $option_value){
    return strtolower($selectedOption) === strtolower($option_value) ? 'selected="selected"' : '';
  }
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST">
  <select name="s">
    <option value=""  disabled>-- choose one --</option>
    <option value="a" <?php echo injectSelectedAttribute($selectedOption, 'a'); ?>>choose a</option>
    <option value="b" <?php echo injectSelectedAttribute($selectedOption, 'b'); ?>>choose b</option>
  </select>
  <input type="submit" name="btSubmit">
</form>

您可以通过在 PHP 个包含 select 个选项的数组上循环来进一步改进它以回显 HTML 个选项。

Try this,
    <?php
      if(isset($_POST['btSubmit'])) {
        $selectedOption = $_POST['s']; // Value of selected option … but how to use it below?
      }
    ?>
    <form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="POST">
      <select name="s">
        <option value="" selected disabled>-- choose one --</option>
        <option value="a" <?php echo $selectedOption=='a'?'selected':'' ;?>>choose a</option>
        <option value="b" <?php echo $selectedOption=='b'?'selected':'' ;?>>choose b</option>
      </select>
      <input type="submit" name="btSubmit">
    </form>