У меня есть форма и раскрывающееся меню, в котором пользователи могут выбрать отрасли труда в рамках своего поиска, например, Бухгалтерия, Строительство, Инженерия и др.
Я искал на этом форуме решения, касающиеся того, как запомнить значения параметров выбора меню ПОСЛЕ отправки, и я благодарен, что реализовал модифицированную версию из решения, которое я нашел здесь:
Самый простой способ запомнить выбор DropDown?
//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>
Тем не менее, я столкнулся с проблемой, когда значения параметров выбора меню, которые у меня есть, ДО отправки формы, теперь показывают уведомление / ошибку:
Notice: Undefined index: jobsector_id
Вот снимок экрана:
снимок экрана с неопределенным указателем
Я понимаю, что это будет потому, что значение POST для ‘jobsector_id’ еще не было отправлено с формой, поэтому мой вопрос заключается в том, как получить параметры выбора меню для отображения в раскрывающемся списке без этой ошибки, ДО того, как форма будет отправлена ?
Я добавил сеанс, чтобы сохранить значение ‘jobsector_id’, а затем сделал $ _POST [‘jobsector_id’] = $ _SESSION [‘jobsector_id’] и, наконец, сбросил сеанс. Кажется, теперь все работает нормально. Спасибо за ваши предложения, ребята!
Других решений пока нет …