PHP菜单选择选项值

时间:2018-10-17 15:34:18

标签: php html.dropdownlistfor

我有一个表格和一个下拉菜单,供用户选择行业部门作为他们搜索的一部分,例如会计,建筑,工程等。

我已经在这个论坛上搜索了有关如何在提交后记住菜单选择选项值的解决方案,并且我很感激能够从我在这里找到的解决方案中实现修改后的版本: Simpliest way to remember DropDown selection?

|

但是,我遇到了一个问题,在提交表单之前,菜单选择选项的值现在显示了通知/错误:

//For example

if(is_post_request()) {
  $jobsector['jobsector_id'] = $_POST['jobsector_id'] ?? '';
} else {
$jobsector['jobsector_id'] = '';
}


<div class="form-group">
  <label for="jobsector">Job Sector:</label>
  <select class="custom-select" name="jobsector_id" id="jobsector_id">
    <option value="">Select Sector</option>
    <?php
    $query = "SELECT jobsectors.id, jobsectors.jobsector_name FROM jobsectors";
    $results = mysqli_query($db, $query);

    $_SESSION['jobsector_id'] = $jobsector['jobsector_id'];
    $_POST['jobsector_id'] = $_SESSION['jobsector_id'];

    //loop
    foreach ($results as $jobsector): ?>
      <option value="<?php echo h($jobsector['jobsector_name']); ?>"
        <?php if ($jobsector['jobsector_name'] == $_POST['jobsector_id']){echo " selected";}?>>
        <?= $jobsector['jobsector_name']; ?>
      </option>
      <?php endforeach;
      unset ($_SESSION['jobsector_id']); ?>
  </select>
</div>

以下是屏幕抓取: screenshot of undefined index notice

我意识到这是因为尚未提交'jobsector_id'的POST值,所以我的问题是,如何在下拉菜单中显示菜单选择选项,而不会出现此错误,表格已提交?

1 个答案:

答案 0 :(得分:0)

我添加了一个会话来存储'jobsector_id'的值,然后使$ _POST ['jobsector_id'] = $ _SESSION ['jobsector_id']并最终取消设置会话。现在看来一切正常。谢谢您的建议!