【发布时间】:2019-11-13 22:04:30
【问题描述】:
我想向我的 cookie 中的现有数组变量添加值。
目前我使用 Ajax 设置我的 cookie:
阿贾克斯:
function setcookie(productid){
$.ajax({
type: 'POST',
url: "setcookies.php",
data: {
id: "productid"
},
success: function (e) {
alert(e);
}
});
}
PHP setcookies.php
<?php
$cookiename = "products";
$cart = array();
$pid = $_POST['id'];
array_push($cart, $pid);
setcookie($cookiename, serialize($cart), time() + 3600, "/");
$_COOKIE[$cookiename] = serialize($cart);
当我点击 addproduct 按钮时 setcookie() 函数将被调用。 点击 addproduct 按钮三次,我预计应该将产品的 3 个 id 添加到 cookie 数组中,但是当我访问将在我的页面中显示 cookie 的页面时,它只会显示最后添加的 productid。
提前谢谢你们。
编辑我的工作代码:
下面的代码对我有用: 只是稍微修改了 Dominique 回答的代码。
$cookiename = "products";
$cart = null;
$pid = $_POST['id'];
if (!empty($_COOKIE[$cookiename])) {
$cart = unserialize($_COOKIE[$cookiename]);
array_push($cart, $pid);
} else {
$cart = array();
array_push($cart, $pid);
}
setcookie($cookiename, serialize($cart), time() + 3600, "/");
$_COOKIE[$cookiename] = serialize($cart);
【问题讨论】:
-
为什么不设置cookie客户端?
-
@ka_lin 我该怎么做?抱歉,我是 cookie 新手
-
@iamj:请参阅stackoverflow.com/questions/14573223/…,了解有关在客户端查看 cookie 的说明。