我有一项任务,可以比较产品列表中的五种产品。为了那个原因 我遵循了以下步骤:
第1步:
当我们点击添加到每个产品的比较按钮时设置onclick事件。在这种情况下,我使用此代码通过javascript设置了cookie。
// cookie is set by array because of we have to store 1 to 5 products
var comparearray = [productid];
document.cookie = "compareitem" + "=" + comparearray;
成功设置了cookie值,该值保存了那些选择要比较的产品ID。
第2步:在我的PHP文件中,我尝试检索此cookie值.BY,
$cookie_val = $_COOKIE['compareitem '];
但它没有奏效。我不知道这种概念是值得的。如果知道,请告诉我如何解决我的问题。提前谢谢。
答案 0 :(得分:0)
由于有些人写的是你不能在PHP中使用JS设置的cookie,我现在就回答这个问题。
请尝试使用cookieSet和cookieGet函数,您可以使用以下答案: How do I create and read a value from cookie?
var createCookie = function(name, value, days) {
var expires;
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toGMTString();
}
else {
expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
注意写入cookie的最后一个参数..path-param设置为' /',所以根位置!在根位置使用php脚本,这样两者都使用根位置而不是其他位置。
接下来请尝试使用JSON对数组进行字符串化。
var cookiedata = JSON.stringify(comparearray);
然后你应该能够用PHP获取cookie并解析JSON以恢复数组。
答案 1 :(得分:0)
由于路径可能有问题,我建议以扩展方式设置/获取cookie:
document.cookie="foo=bar; path=/;"
或者您可以使用此功能:
function setCookie (name, value, expires, path, domain, secure) {
document.cookie = name + "=" + escape(value) +
((expires) ? "; expires=" + expires : "") +
((path) ? "; path=" + path : "") +
((domain) ? "; domain=" + domain : "") +
((secure) ? "; secure" : "");
}