Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS相当于查找cookie的PHP函数_Javascript_Php_Regex_Cookies - Fatal编程技术网

Javascript JS相当于查找cookie的PHP函数

Javascript JS相当于查找cookie的PHP函数,javascript,php,regex,cookies,Javascript,Php,Regex,Cookies,我有一个小购物车可以在WordPress中与PHP一起使用,但现在我正在用AJAX实现它 我有一个PHP函数,可以找到一些cookies,这些cookies告诉我用户在购物车中放了什么,但是,因为现在我正在根据用户选择将产品信息加载到同一个div中,PHP中的该函数不再有用,需要使用JS或JQuery才能在用户每次更改到其他产品时进行更新 PHP中的函数是: function in_cart($post_id){ $found = false; if(!empty($_COOKIE['cart'

我有一个小购物车可以在WordPress中与PHP一起使用,但现在我正在用AJAX实现它

我有一个PHP函数,可以找到一些cookies,这些cookies告诉我用户在购物车中放了什么,但是,因为现在我正在根据用户选择将产品信息加载到同一个div中,PHP中的该函数不再有用,需要使用JS或JQuery才能在用户每次更改到其他产品时进行更新

PHP中的函数是:

function in_cart($post_id){
$found = false;
if(!empty($_COOKIE['cart'])){
    foreach ($_COOKIE ['cart'] as $c) {
        if ($c ['id'] == $post_id)
            $found = $c;
    }
}   
return $found;
}

这些cookie被称为“cart[0][id]”和“cart[0][quantity]”,其中“0”的增量取决于产品的数量,通过该函数,我可以通过以“cart”开头的cookie的所有实例运行,但我似乎无法在JS中复制该循环

我尝试使用正则表达式来实现这一点,以便允许在第一组og括号中包含任何数字,但它不起作用(我对JS很陌生,所以不确定我是否正确实现了这一点)

有人有什么建议吗

更新: 这是我最后一次尝试使用正则表达式:

var nums = /^[0-9]+$/;
function readCookie(c_name)
{
var c_value = document.cookie;
var c_start = c_value.indexOf(" " + c_name + "=");
if (c_start == -1)
  {
  c_start = c_value.indexOf(c_name + "=");
  }
if (c_start == -1)
  {
  c_value = null;
  }
else
  {
  c_start = c_value.indexOf("=", c_start) + 1;
  var c_end = c_value.indexOf(";", c_start);
  if (c_end == -1)
  {
c_end = c_value.length;
}
c_value = unescape(c_value.substring(c_start,c_end));
}
return c_value;
}
cart = readCookie("cart["+ nums +"][id]");
请参阅关于如何在javascript中访问cookie的精彩文章,它们甚至提供了读取/写入cookie值的完整实现。简而言之,cookies可以作为文档的属性进行访问:
document.cookie
。该属性将属于您域的所有cookie存储为字符串(例如:
foo=bar;baz=bizz
)。要访问单个元素,您必须想出一些正则表达式魔术,从而链接到

这里的解决方案让您可以轻松地设置/获取/检查/删除cookies,例如

docCookies.setItem("foo", "bar");
docCookies.getItem("foo"); // bar
docCookies.hasItem("foo"); // true
docCookies.removeItem("foo");

顺便说一句,如果你使用jQuery,有一个非常好的方法。

请展示你的尝试。你可以简单地使用
substr
而不是regex。添加了我在帖子上的最后一次尝试…我确实在该页面上运行过,并帮助我理解JS中的Cookie,但我的问题是我无法浏览所有称为“cart[任何数字][id]”。但我可以读取所有cookie或获取一个cookie,例如,如果我搜索“购物车[0][id]”,我可以获取cookie,但我需要知道是否有多个cookie,即“购物车[1][id]”、“购物车[2][id]”等。