Хорошо, у меня есть две радиокнопки «А» и «В», и у пользователя есть выбор, чтобы выбрать кого-нибудь из них, по умолчанию выбрана кнопка «А», но когда пользователь приходит на мой сайт и выбирает «В», тогда выбор меняется на кнопку «B», однако проблема заключается в том,
когда пользователь переходит на другую страницу моего сайта, выбор возвращается к умолчанию ?? Как это исправить? можно ли это сделать с помощью кеша и сеанса? если да, то как:?
вот кнопки,
<form name="f1" method="POST" action="<?php echo $PHP_SELF;?>"> <span>Family filter:</span> <ul> <li><input type="radio" name="r1" value="o" onClick="submit();" <?php echo ($_SESSION['r1'] == "o") ? 'checked="checked"' : ''; ?><?php echo ($_POST['r1'] == 'o' ) ? 'checked="checked"' : ''; ?> />On</li> <li><input type="radio" name="r1" value="p" onClick="submit();" <?php echo ($_SESSION['r1'] == "p") ? 'checked="checked"' :''; ?><?php echo ($_POST['r1'] == 'p') ? 'checked="checked"' : ''; ?> />Off</li> </ul> </form> <?php session_start();
// Я не знаю, что писать здесь, чтобы заставить его работать: S?>
также, когда я открываю страницу, обе кнопки не выбраны, как я могу сделать, чтобы кнопка «А» оставалась по умолчанию, если ни один не выбран
Вам нужно перевести переменные _POST в переменные _SESSION. Он работает сначала, потому что вы разрешаете переменным POST или SESSION устанавливать проверку:
<?php echo ($_SESSION['r1'] == "o") ? 'checked="checked"' : ''; ?><?php echo ($_POST['r1'] == 'o' ) ? 'checked="checked"' : ''; ?>
Но это не нужно. В самой верхней части страницы вы должны иметь следующее:
<?php session_start(); if (isset($_POST['r1'])){ $_SESSION['r1']=$_POST['r1']; } ?>
а затем ниже вас нужно только
<?php echo ($_SESSION['r1'] == "o") ? 'checked="checked"' : ''; ?>
Замечание: убедитесь, что вызов session_start () происходит в самом начале страницы и что он встречается в самой верхней части каждой страницы, где вы хотите, чтобы переменная сессии была доступна.
session_start(); $_SESSION['r1'] = $_REQUEST['r1'];
Когда вы отправляете выбор в свой php-скрипт, вам нужно получить / отправить / запросить переменную и сохранить ее в переменной сеанса после запуска сеанса. Затем в каждом php-файле вы можете добавить инструкцию session_start (), и вы сможете использовать все переменные сеанса в этом скрипте. Вы также можете установить cookie сеанса так, чтобы он истекал, когда пользователь закрывает свой браузер session_set_cookie_params (0); или при нажатии кнопки выхода из системы, используя session_destroy () ;. После сохранения переменной сеанса вы можете использовать ее на всех ваших страницах, чтобы установить атрибут «checked» этого переключателя.