我有一个小型购物车可在 WordPress 中与 PHP 一起使用,但现在我正在实现它以在具有 AJAX 的站点中使用。
我有一个 PHP 函数,它可以找到一些 cookie,这些 cookie 告诉我用户在购物车中放了什么,但是,由于现在我根据用户选择将产品信息加载到同一个 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”的增量取决于产品的数量,使用该功能,我可以在所有实例中运行以“购物车”开头的 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]");