2012-09-26 65 views
0

我不知道任何關於cookie或如何設置它們,我需要一些建議。我有兩個單選按鈕。例如,如果一個選項從一個更改爲另一個,那麼即使頁面刷新或在其他存在此單選按鈕的頁面上更改,該選項仍會保留,並且我需要爲此代碼設置Cookie。有人可以給我一些建議,關於什麼代碼應該添加到我的PHP?單選按鈕和cookie設置

這是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> 

回答

1

重要的是要記住,餅乾只能任何輸出發送到客戶端上的網頁之前設置是很重要的,因爲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, '/'); 
} 
?> 

上面的代碼將確保只有一個cookies設置爲true,另一個設置爲false。 cookies將在十分鐘後過期。

這是你正確設置後的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標籤。

+0

無法正常工作。有可能是從JavaScript? –

+0

對不起,我試圖在本地主機上做到這一點,我發現它不像那樣工作 –

1

setcookie例子來說明如何在PHP中設置cookie。但你也可以用javascript js_cookies來做到這一點。