Php 带cookie的单选按钮

Php 带cookie的单选按钮,php,button,cookies,radio,Php,Button,Cookies,Radio,我试着为两个单选按钮设置一个cookie,但我不知道我做错了什么。我需要使它在按钮被选中时保持选中状态,即使页面被刷新。有人能给我一个建议吗?谢谢 这是我的test.php <?php if(isset($_POST['radio1'])) { setcookie('radio1', true, 600, '/'); setcookie('radio2', false, 600, '/'); } else if(isset($_POST['radi

我试着为两个单选按钮设置一个cookie,但我不知道我做错了什么。我需要使它在按钮被选中时保持选中状态,即使页面被刷新。有人能给我一个建议吗?谢谢

这是我的test.php

<?php 
    if(isset($_POST['radio1'])) {
      setcookie('radio1', true, 600, '/');
      setcookie('radio2', false, 600, '/');
    } else if(isset($_POST['radio2'])) {
      setcookie('radio2', true, 600, '/');
      setcookie('radio1', false, 600, '/');
    }
    ?>

    <form method="POST" action="test.php">
      <div id="radio">
        <input type="radio" id="radio1" name="radio" checked="checked" />
        <label for="radio1">Choice 1</label>
        <input type="radio" id="radio2" name="radio" />
        <label for="radio2">Choice 2</label>
      </div>
    </form>

选择1
选择2

我不太明白您的代码,但以下内容应该为您检查正确的单选按钮:

<?php 
if(isset($_POST['radio']) && $_POST['radio']=='val1') {
  setcookie('radio1', true, 600, '/');
  $radio1=' checked ';
  $radio2='';
  setcookie('radio2', false, 600, '/');
} else if(isset($_POST['radio'])&& $_POST['radio']=='val2') {
  setcookie('radio2', true, 600, '/');
  $radio1='';
  $radio2=' checked ';
  setcookie('radio1', false, 600, '/');
}
?>

<form method="POST" action="test.php">
  <div id="radio">
<input type="radio" id="radio1" name="radio" <?php echo $radio1;?> value="val1" />
<label for="radio1">Choice 1</label>
<input type="radio" id="radio2" name="radio" <?php echo $radio2;?> value="val2" />
<label for="radio2">Choice 2</label>
<input type="submit">
  </div>
</form>

value=“val2”/>
选择2
这是W3C的
checked=“checked”
而不仅仅是
checked

<?php 
    if (isset($_POST['radio']) && $_POST['radio'] == "radio1") {
        setcookie('radio1', "true", 600, '/');
        setcookie('radio2', "false", 600, '/');
        $radio1 = ' checked="checked"';
        $radio2 = '';
    } else if(isset($_POST['radio']) && $_POST['radio'] == "radio2") {
        setcookie('radio1', "false", 600, '/');
        setcookie('radio2', "true", 600, '/');
        $radio1 = '';
        $radio2 = ' checked="checked"';
    }

    if (isset($_COOKIE['radio1']) && $_COOKIE['radio1'] == "true") {
        $radio1 = ' checked="checked"';
        $radio2 = '';
    } else if (isset($_COOKIE['radio2']) && $_COOKIE['radio2'] == "true") {
        $radio1 = '';
        $radio2 = ' checked="checked"';
    }
    ?>

    <form method="POST" action="test.php">
        <div id="radio">
            <input type="radio" id="radio1" name="radio" value="radio1" <?= $radio1; ?> />
            <label for="radio1">Choice 1</label>
            <input type="radio" id="radio2" name="radio" value="radio2" <?= $radio2; ?> />
            <label for="radio2">Choice 2</label>
        </div>
    </form>

仍不工作。我检查一个按钮,我给刷新,但什么也没有发生,他们都是未选中的。我是否必须在代码中添加其他内容,如提交按钮或javascript?@Cola仔细查看代码,我发现我们没有在PHP代码中设置值并检查它。与标记关联的ID对CSS和Javascript来说意味着一些东西,但对PHP来说却没有任何意义。对于单选按钮,我们需要检查值。我更新了代码。我检查过了,不工作。没有cookies还有另一种方法吗?@Cola上面的代码(除去了工作代码以外的任何代码)按原样为我工作(我添加了一个提交按钮),它将表单提交中的数据保存到表单提交中。您是否更改了表单以匹配答案-添加
value='val1'
位?从一个页面到另一个页面,我的意思是使用$GET或类似的东西,因为我真正需要这台收音机的是当有人在进入下一页时选中一个按钮并在我的主页上按search以保留他选择的选项。但在主页上,默认值始终被选中为radio1。我觉得更简单。我忘了测试cookies值,现在试试。:)我必须添加javascript或提交按钮吗?不,我的错,我没有测试你的代码,你忘记了你收音机中的值。