0

Cookie やその設定方法について何も知らないので、アドバイスが必要です。私は2つのラジオボタンを持っています。たとえば、オプションが変更された場合、このラジオ ボタンが存在する他のページでページが更新または変更されても、そのオプションは残ります。このコードの 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

PHPでCookieを設定する方法については、 setcookieの例を参照してください。ただし、 javascriptjs_cookiesを使用して実行することもできます。

于 2012-09-26T21:36:25.057 に答える
1

Cookie は Web ページ上のクライアントに出力が送信される前にのみ設定できることに注意してください。これは、Cookie はヘッダーとして設定され、ヘッダーは Web ページ出力のどの部分よりも前にのみ送信できるためです。したがって、ページを更新して、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 の 1 つだけが true に設定され、もう 1 つが false に設定されていることを確認します。Cookie は 10 分後に期限切れになります。

これは、ユーザーがボタンを選択したことを検出できるように、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 タグが修正されました。

于 2012-09-26T21:41:14.460 に答える