需要jquery cookie帮助(需要帮助形成一个cookie)

时间:2011-06-24 02:01:13

标签: php jquery cookies

我想知道是否有可能在php中创建一个cookie(使用jquery.cookie):

$_COOKIE['124']['ctns'] => 12
$_COOKIE['124']['units'] => 2

OR

$_COOKIE['124'] => array( 'ctns' => 12, 'units' => 2 )

目前我已经创建了一个看似如下的cookie:

$_COOKIE['124-ctns'] => 12
$_COOKIE['124-units'] => 2

但我意识到这不适用于我需要的东西。

我正在使用的代码(jquery)是:

$.cookie('124-ctns', 12, { path: '/' });
$.cookie('124-units', 2, { path: '/' });

任何帮助将不胜感激:)

3 个答案:

答案 0 :(得分:1)

在PHP中创建多维cookie:

setcookie("124[ctns]",12,time()+3600);
setcookie("124[units]",2,time()+3600);

最后一个参数是到期时间。

在PHP中访问多维Cookie:

$ctns = $_COOKIE['124']['ctns']; // $ctns will equal 12
$units = $_COOKIE['124']['units']; // $units will equal 2

快速,print_r($_COOKIE)将输出:

Array
(
    [124] => Array
        (
            [ctns] => 12
            [units] => 2
        )

)

简而言之,是的,你可以。以下是PHP手册中的一个具体示例。

Example #3 setcookie() and arrays

答案 1 :(得分:1)

你做不到。 Cookies只存储字符串,而不是对象。 您可以将对象转换为JSON,因此代码看起来像

$_COOKIE['124'] => json_encode(array( 'ctns' => 12, 'units' => 2 ));

n124 = JSON.parse($.cookie('124'));

然后变量n124应该是对象,所以你可以得到像这样的变量     n124.ctns     n124.units

答案 2 :(得分:0)

我就是这样做的:

<input name="cb[1]" type="checkbox" value = "1">
<input name="cb[2]" type="checkbox" value = "2">

<javascript>
$(":checkbox").click(function(){
    name =  $(this).attr('name');
    val = $(this).val();
    $.cookie(name, val);
});
</javascript>

使用print_r(cb)时的输出:

[cb] => Array
        (
            [1] => 1
            [2] => 2
        )

但现在我的问题是如何访问存储的cookie @。@