0

我对 cookie 或如何设置它们一无所知,我需要一些建议。我有两个单选按钮。例如,如果一个选项从一个更改为另一个,即使在存在此单选按钮的其他页面上刷新或更改页面,该选项仍将保留,并且我需要为此代码进行 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>
4

2 回答 2

1

请参阅setcookie示例如何在 PHP 中设置 cookie。但是您也可以使用 javascript js_cookies来做到这一点。

于 2012-09-26T21:36:25.057 回答
1

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

在 php 的最顶部,在 <!DOCTYPE> html 或 <html> 标记之前,您需要添加如下内容:

<?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。cookie 将在十分钟后过期。

这是在您正确设置 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

EDIT: Semantic code changes and fixed the html tags described.

于 2012-09-26T21:41:14.460 回答