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

标签 javascript php

我有一个 JavaScript 可以保存复选框状态,将其放入 cookie 中,然后在我的表单中重新填充我的复选框。我现在想做的是用 php 将一堆“if 语句”放在一起,然后为那些“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 = '是的'。如何编写这些 if 语句以仅在该 id 为“true”时将参数添加到字符串?

这是 var_dump($_COOKIE);

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

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

最佳答案

编辑

根据您的评论,看起来 $_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'"; 

关于javascript - 如何从 $_COOKIE ["elementValues"] 中提取单个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29326390/

相关文章:

php - 我应该如何在 PHP 中创建一次性计划任务?克朗?

php - 如何创建表单来删除 &lt;script&gt;&lt;/script&gt; 标签并删除该标签之间的内容或脚本?

javascript - 将网格内的 DropdownList 值传递给网格本身

javascript - JavaScript 权威指南中的对象合并函数与扩展函数完全一样吗?

php - 更有效的方法来聚合和重新列列结果?

php - Symfony2 与学说 : Nested conditions for findBy

PHP 生成的文件列表 : any way to have line breaks between different letters?

javascript - Document.querySelector() 不适用于 bootstrap css

javascript - 底部的箭头表示 Angular 事件链接

Javascript:检测文本区域已满