单选按钮和cookie设置

时间:2012-09-26 21:29:21

标签: cookies radio-button

我对cookies或如何设置它一无所知,我需要一些建议。我有两个单选按钮。例如,如果某个选项从一个选项更改为另一个选项,即使在存在此单选按钮的其他页面上刷新或更改该页面,该选项仍将保留,并且我需要为此代码进行cookie设置。有人可以给我一些关于我应该添加到我的PHP代码的建议吗?

这是js代码:

$(document).ready(function() {
  $('radio[name=radio]').each(function() {
   $(this).click(function() {
    my_function();
    });
   });
});

my_function()
{
   var value_checked = $("input[name='radio']:checked").val();
   $.ajax({
   type: 'POST',
   url: 'page.php',
   data: {'value_checked':value_checked},
   });
}

html代码

<form>
    <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>

2 个答案:

答案 0 :(得分:1)

请参阅setcookie示例如何在PHP中设置Cookie。但您也可以使用javascript js_cookies

答案 1 :(得分:1)

重要的是要记住,只有在任何 输出发送到网页上的客户端之前,才能设置,因为Cookie被设置为标题,标题可以只能在网页输出的任何部分之前发送。因此,您需要刷新页面以将cookie设置为单选按钮的值。

在php的最顶层,在&lt;!DOCTYPE&gt;之前。 html或&lt; html&gt;标签,你需要添加这样的东西:

<?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, '/');
}
?>

上述代码将确保只有一个cookie设置为true而另一个设置为false。饼干将在十分钟后过期。

这是在你正确设置html表单以便检测到你的用户选择了一个按钮之后:

<form method="POST" action="index.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>

PHP手册页面提供了更多信息:http://php.net/manual/en/function.setcookie.php

编辑:语义代码更改并修复了所描述的html标签。