将选项设置为使用 php 选择的

问题描述 投票:0回答:3

如何使用 PHP 将选择选项设置为发送表单时选择的选项?这是我陷入困境的代码:

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

因此,当您在页面的下一次加载时发送带有选择的表单时,默认情况下应选择 a。

php html-select
3个回答
3
投票

只需将

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

<?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 数组来回显选项的 HTML。


0
投票
<select required name="role_user" class="form-select">

                                          <?php 

                                            $options = array( 'DG', 'DD1', 'DD2', 'DD3', 'SPAG', 'AG' );
                                            $options_title = array( 'Admin', 'Superviseur Direction 1', 'Superviseur Direction 2', 'Superviseur Direction 3', 'Super-Agent', 'Agent' );

                                            $output = '';
                                            for( $i=0; $i<count($options); $i++ ) 
                                            {


                                              if ($get_users_data["permission"] == $options[$i]) {

                                                echo "<option value=$options[$i] selected> $options_title[$i]</option>";

                                              }else{

                                                echo "<option value=$options[$i] > $options_title[$i]</option>";

                                              }


                                            }



                                         ?>

                                        </select>

-1
投票
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>
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.