Установка опции выбора по умолчанию для ранее установленной опции

В моем модальном окне у меня есть выбор, где пользователь может выбрать завтрак из моей базы данных. При выборе блюда и его подаче запись сохраняется в базе данных. Однако мне бы хотелось, чтобы, когда пользователь входит в одно и то же модальное окно, любая еда, которую он выбрал перед этим, будет отображаться как опция по умолчанию. Я создал запрос, который проверяет, была ли уже выбрана еда (optionquery1). Есть идеи для этого? Спасибо

Кстати, я не уверен, что сейчас устанавливаю переменную php даты. День, месяц и год хранятся в скрытых входных данных HTML, но не уверены, как извлечь значения.

<div id="myModal" class="modal">

<!-- Modal content -->
<div class="modal-content">
<span class="close">&times;</span>
<div class="modal-body">
<form action="my_planner.php" method="post">
<!--<span class="test5"></span>-->
<!--<span class="test"><input type="text" name="id_disabled" value="" disabled/>-->
<input class="test" type="text" name="id1" value="" style="text-align:center; border:0px; font-weight:bold; font-size: 25px;"/>
<hr class="my-4">
<input type="hidden" name="id" value=""/>
<input type="hidden" name="month" value=""/>
<input type="hidden" name="year" value=""/>

<br>
<p id="breakfastTag"><br>Breakfast:</p>
<select id="breakfast" name="breakfast">
<option value="" disabled selected>Select your breakast</option>
<?
$meal='breakfast';
$date='<input type="hidden" name="id" value=""/>'.'<input type="hidden" name="month" value=""/>'.'<input type="hidden" name="year" value=""/>';
$query = $db->prepare("select * from recipe_category where categoryID=1");
$query->execute();

while ($results = $query->fetch()) {
$recipeID=$results["recipeID"];
$query3 = $db->prepare("select * from recipe where id=:recipeID");
$dbParams3=array('recipeID'=>$recipeID);
$query3->execute($dbParams3);
$breakfast = $query3->fetchAll();

$optionquery = $db->prepare("select * from user_planner where userID=:userID and date=:date and meal=:meal");
$optionParams= array ('userID'=>$thisUser, 'date'=>$date,'meal'=>$meal);
$optionquery->execute($optionParams);

while ($results12 = $optionquery->fetch()) {
$selectedmeal = $results12['recipeID'];
}

$optionquery1 = $db->prepare("select * from recipe where id=:recipeID");
$optionParams1= array ('recipeID'=>$selectedmeal);
$optionquery1->execute($optionParams1);

while ($results123 = $optionquery1->fetch()) {
$selectedrecipe = $results123['name'];
}

foreach($breakfast as $breakfast): ?>
<option  value="<?= $breakfast['id']; ?>"><?= $breakfast['name']; ?></option>
<?php endforeach;} ?>
</select>

0

Решение

Конечно, вы можете, вам нужно использовать selected атрибут на <option> ты хочешь показать.
Сначала удалите selected атрибут с первого <option>:

<option value="" disabled>Select your breakast</option>

Тогда в foreach петля вам нужна if состояние:

$results123 = $optionquery1->fetch();
$selectedrecipe = $results123['id'];

foreach($breakfast as $breakfast): ?>
<option  value="<?= $breakfast['id']; ?>" <?php if ($breakfast['id'] == $selectedrecipe) echo 'selected' ?>><?= $breakfast['name']; ?></option>
<?php endforeach;} ?>

Обратите внимание, что я удалил while цикл, так как мы уверены, что Mysql вернет только одну запись (WHERE ID = <ID>).

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector