根据用户的性别显示特定 select 选项

Displaying specific select option based on user's gender

我正在尝试根据性别对 select option 设置限制,并相应地显示在表单中。我可以这样写来与表格中的 if else 语句进行比较吗?输出结果只显示第一个select option,其他不显示,不分性别

这是我的代码:

if ($row = mysqli_fetch_assoc($staffQuery)) {
    $sex = $row['gender'];
  ?>
    <div class="form-group">
        <label for="select" class="col-md-2 control-label">Type of leave </label>        
            <div class="col-md-2">
               <?php
                 if ($sex == "male") {?>
                    <select class="form-control" id="select" name="leave_option">
                       <option value="1">Annual Leave</option>
                       <option value="2">Sick Leave</option>
                       <option value="3">No Pay Leave</option>
                       <option value="4" disabled>Maternity Leave</option>
                       <option value="5">Adoption Leave</option>
                       <option value="6">Childcare Leave</option>
                       <option value="7">Paternity Leave</option>
                       <option value="8">Shared Parental Leave</option>
                       <option value="9">Infant Care Leave</option>
                       <option value="10">Reservist Leave</option>
                   </select>
                   <?php
                   }else {?>
                   <select class="form-control" id="select" name="leave_option">
                       <option value="1">Annual Leave</option>
                       <option value="2">Sick Leave</option>
                       <option value="3">No Pay Leave</option>
                       <option value="4">Maternity Leave</option>
                       <option value="5">Adoption Leave</option>
                       <option value="6">Childcare Leave</option>
                       <option value="7">Paternity Leave</option>
                       <option value="8">Shared Parental Leave</option>
                       <option value="9">Infant Care Leave</option>
                       <option value="10" disabled>Reservist Leave</option>
                   </select>
                   <?php } ?>
                </div>
            </div>
           <?php  } ?>

如有任何帮助,我们将不胜感激。谢谢。

你只能在一个条件下实现,像这样

<select class="form-control" id="select" name="leave_option">
      <option value="1">Annual Leave</option>
      <option value="2">Sick Leave</option>
      <option value="3">No Pay Leave</option>
      <option value="4" <?php if($sex == "male") echo "disabled"; ?>>Maternity Leave</option>
      <option value="5">Adoption Leave</option>
      <option value="6">Childcare Leave</option>
      <option value="7">Paternity Leave</option>
      <option value="8">Shared Parental Leave</option>
      <option value="9">Infant Care Leave</option>
      <option value="10" <?php if($sex != "male") echo "disabled"; ?> >Reservist Leave</option>
</select>

是的。你可以使用 if else 但如果你这样写会更有效率

if ($row = mysqli_fetch_assoc($staffQuery)) {
    $sex = $row['gender'];
  ?>
    <div class="form-group">
        <label for="select" class="col-md-2 control-label">Type of leave </label>        
            <div class="col-md-2">
                    <select class="form-control" id="select" name="leave_option">
                       <option value="1">Annual Leave</option>
                       <option value="2">Sick Leave</option>
                       <option value="3">No Pay Leave</option>
                       <option value="4" <?php echo $sex=="male"?"disabled":"" ?> >Maternity Leave</option>
                       <option value="5">Adoption Leave</option>
                       <option value="6">Childcare Leave</option>
                       <option value="7">Paternity Leave</option>
                       <option value="8">Shared Parental Leave</option>
                       <option value="9">Infant Care Leave</option>
                       <option value="10" <?php echo $sex=="male"?"":"disabled"?>>Reservist Leave</option>
                   </select>
                </div>
            </div>

如果您只想显示所需的选项,请按照以下步骤操作:

<select class="form-control" id="select" name="leave_option">
      <option value="1">Annual Leave</option>
      <option value="2">Sick Leave</option>
      <option value="3">No Pay Leave</option>
      <?php if($sex == "female"){ ?>
      <option value="4">Maternity Leave</option>
      <? } ?>
      <option value="5">Adoption Leave</option>
      <option value="6">Childcare Leave</option>
      <option value="7">Paternity Leave</option>
      <option value="8">Shared Parental Leave</option>
      <option value="9">Infant Care Leave</option>
      <?php if($sex == "male"){ ?>
      <option value="10">Reservist Leave</option>
      <? } ?>
</select>

我已经找到为什么它不能工作了,因为我忘了找回 staff_id 来自 $_SESSION,因此比较无效。很高兴修复它并能够更有效地完成它 way.Thanks 为您的所有输入。

$getId = $_SESSION['staff_id']; //missing, thus unable to compare
$staffQuery = "SELECT * FROM staff WHERE staff_id = '$getId'";