确定, 我有两个单选按钮'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();
//我不知道在这里要写什么才能让它起作用:S ?&GT;
当我打开页面时,两个按钮都被取消选中我怎么能这样做,默认情况下,当没有选中时,按钮'A'仍然被选中
答案 0 :(得分:2)
您需要将_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()调用发生在页面的最开头,并且它发生在您希望会话变量可用的每个页面的最顶部
答案 1 :(得分:0)
session_start();
$_SESSION['r1'] = $_REQUEST['r1'];
当您向php脚本提交选择时,您需要获取/发布/请求变量并在启动会话后将其存储到会话变量中。然后在每个php文件中,您可以添加session_start()语句,并且您将能够使用该脚本中的所有会话变量。您还可以设置会话cookie,以便在用户关闭浏览器session_set_cookie_params(0);或使用session_destroy();命中注销按钮时使其过期。存储会话变量后,您可以在所有页面上使用它来设置单选按钮的“已检查”属性。