如何从$ _COOKIE [" elementValues"]中提取单个值?

时间:2015-03-29 06:41:21

标签: javascript php

我有一个JavaScript,用于保存复选框状态,将其放入cookie中,然后在我的表单中重新填充我的复选框。我在这一点上要做的是将一堆“if语句”与php组合在一起,然后将其组合成一个字符串,用于“true”。

这是我在回显$ _COOKIE [“elementValues”]时得到的结果。 1,2,3表示每个表单输入复选框的ID号。

   {"1":false,"2":false,"3":false,buttonText":""}

以下是我想用PHP做的事情。

if ($_COOKIE["1"]=true) 
{ $arguments[] = "AND 2kandunder = 'yes'"; 
}
if ($_COOKIE["2"]=true) 
{ $arguments[] = "AND 2kto4k = 'yes'"; 
} 
if ($_COOKIE["3"]=true) 
{ $arguments[] = "AND 2kandup = 'yes'"; 
}
if(!empty($arguments)) {
$str = implode($arguments);
echo "string: ".$str."<br>;

问题是我回复了我的$ str,即使所有的检查项在$ _COOKIE [“elementValues”中都是“假”,它仍然会回显AND 2kto4k ='yes'AND 2kandunder ='yes'AND 2kandup = '是'。如果id为“true”,我如何编写这些if语句来将参数添加到字符串中?

这是var_dump($ _ COOKIE);

array(3) { ["PHPSESSID"]=> string(32) "4b4bbcfc32af2f41bdc0612327933887" [2]=> string(6) ""true"" ["elementValues"]=> string(47) "{"1":false,"2":false,"3":false,"buttonText":""}" } 

{ “1”:假, “2”:假, “3”:假 “buttonText”: “”}

1 个答案:

答案 0 :(得分:2)

修改

根据您的评论,$_COOKIE["elementValues"]似乎是JSON字符串。您必须按照我的编辑进行操作。


您正在做想要进行比较的分配。这是您更正后的代码:

首先,解码您的JSON字符串:

$cookie = json_decode($_COOKIE["elementValues"], true); // note the second argument to true to make it an associative array

然后,按照这个的方式处理你的条件:

if ($cookie["1"] == true) // note the ==
{ 
    $arguments[] = "AND 2kandunder = 'yes'"; 
}
if ($cookie["2"] == true) // note the == 
{
    $arguments[] = "AND 2kto4k = 'yes'"; 
} 
if ($cookie["3"] == true) // note the ==
{
    $arguments[] = "AND 2kandup = 'yes'"; 
}   

方式(更短):

if ($cookie["1"]) // casts variable as boolean if it's not
    $arguments[] = "AND 2kandunder = 'yes'"; 

if ($cookie["2"]) // casts variable as boolean if it's not 
    $arguments[] = "AND 2kto4k = 'yes'"; 

if ($cookie["3"]) // casts variable as boolean if it's not
    $arguments[] = "AND 2kandup = 'yes'";