PHP单选按钮和会话

PHP单选按钮和会话,php,session,cookies,Php,Session,Cookies,嗯, 我有两个单选按钮“A”和“B”,用户可以选择其中任何一个, 默认情况下,按钮“A”被选中,但当用户来到我的网站并选择“B”时,选择将更改为按钮“B”,但问题是 当用户移动到“我的网站”中的另一个页面时,选择将返回默认设置?? 如何修复它?? 可以借助缓存和会话来完成吗?如果是,那么如何: 这是按钮 <form name="f1" method="POST" action="<?php echo $PHP_SELF;?>"> <span>Family fi

嗯, 我有两个单选按钮“A”和“B”,用户可以选择其中任何一个, 默认情况下,按钮“A”被选中,但当用户来到我的网站并选择“B”时,选择将更改为按钮“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();

您需要将您的_POST变量转换为_SESSION变量。它首先起作用,因为您允许POST或会话变量设置检查:

<?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变量可用的每个页面的最顶部

session_start();
$_SESSION['r1'] = $_REQUEST['r1'];

当您向php脚本提交选择时,需要获取/发布/请求变量,并在启动会话后将其存储到会话变量中。然后在每个php文件中添加一个session_start()语句,您将能够使用该脚本中的所有会话变量。您还可以设置会话cookie,使其在用户关闭浏览器会话时过期。\u set\u cookie\u params(0);,或者在使用会话_destroy()点击注销按钮时;。存储会话变量后,您可以在所有页面上使用它来设置单选按钮的“checked”属性。

考虑到您没有提交按钮,您必须进行AJAX调用来保存会话。他有onClick=“submit();”可以提交表单。我想。因此,实际上并不需要AJAX。