我有一个表格和一个下拉菜单,供用户选择行业部门作为他们搜索的一部分,例如会计,建筑,工程等。
我已经在这个论坛上搜索了有关如何在提交后记住菜单选择选项值的解决方案,并且我很感激能够从我在这里找到的解决方案中实现修改后的版本: 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值,所以我的问题是,如何在下拉菜单中显示菜单选择选项,而不会出现此错误,表格已提交?
答案 0 :(得分:0)
我添加了一个会话来存储'jobsector_id'的值,然后使$ _POST ['jobsector_id'] = $ _SESSION ['jobsector_id']并最终取消设置会话。现在看来一切正常。谢谢您的建议!