У меня возникла проблема с переключателями, присутствующими на моей странице. Может ли кто-нибудь сказать мне, почему он не сохраняет свой выбор после нажатия пользователем кнопки «Отправить»?
<?php
session_start();
if(isset($_POST['submit']))
if(!empty($_POST['diet']))
?>
...
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
<strong>Dietary Requirements:</strong>
<br><br>
Vegetarian <input type="radio" name="diet" <?php if (isset($_POST['diet']) && $_POST['diet']=="Vegetarian") echo "checked";?> value="Vegetarian">
<br><br>
Vegan <input type="radio" name="diet" <?php if (isset($_POST['diet']) && $_POST['diet']=="Vegan") echo "checked";?> value="Vegan">
<br><br><br>
...
<input type="submit" id="submit" name="submit" value="Submit">
Страница подтверждения:
<b>Dietary Requirements: </b>
<br><br><?php if(isset($_SESSION['diet'])) echo $_SESSION['diet']; ?>
У меня есть другой набор переключателей ниже диетических требований, который прекрасно работает и сохраняет свое значение после отправки, поэтому я не понимаю, почему переключатели диетических требований не работают.
Вот функциональные переключатели для ясности:
<strong> VIP area* : </strong> <br><br>
Yes (+£5) <input type="radio" name="vip" <?php if (isset($vip) && $vip=="Yes") echo "checked";?> value="Yes">
<br><span id="vip" class="error"><?php echo $vipErr;?></span><br>
No <input type="radio" name="vip" <?php if (isset($vip) && $vip=="No") echo "checked";?> value="No">
<br><br><br>
Я думаю, что вы ищете что-то вроде этого:
<?php
session_start();
if(isset($_POST['submit'])) {
if(!empty($_POST['diet']))
$_SESSION['diet'] = $_POST['diet'];
}
if(isset($_SESSION['diet']))
echo $_SESSION['diet']
?><form action="" method="post">
<strong>Dietary Requirements:</strong>
<br><br>
Vegetarian <input type="radio" name="diet" <?php if (isset($_POST['diet']) && $_POST['diet']=="Vegetarian") echo "checked";?> value="Vegetarian">
<br><br>
Vegan <input type="radio" name="diet" <?php if (isset($_POST['diet']) && $_POST['diet']=="Vegan") echo "checked";?> value="Vegan">
<br><br><br>
<input type="submit" name="submit">
</form>
Других решений пока нет …