私が達成しようとしているもの:クッキーの設定が正常に動作しない
hrefを押すと、私はsaveItem()
関数を呼び出します。それは以下のように呼ばれている:
savedList =私のクッキーの名前
get_the_ID()が '185'、現在のIDのポストを得るためにwordpressの機能を=など
は
た場合を期限切れにするCookieの日= saveItem()が呼び出されると、名前がsavedList
のクッキーがすでに存在するかどうかがチェックされます。そうでなければ、その名前のクッキーを作成し、パラメータ(現在の投稿のID)を渡された値を追加します。 このクッキーが存在する場合、そのクッキーにもう1つのIDを追加したいと思います。区切り文字は;
となります。他のページでは、そのクッキーのリストを通して製品リストを表示できます。
私のクッキーは「185」です。新しいID(「65」など)を追加すると、Cookieが「185; 65」になります。
問題はですが、期待通りに機能しません。奇妙なことは、console.log("New Value Is : " + newValue);
に表示されている場合は「185; 65」と表示されますが、 console.log(mNameList);
には「185」だけが再度表示されることです。
私が使用して私のクッキーの値を確認するには:以下
print_r($_COOKIE['savedList']);
機能:
saveItem():
function saveItem(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days*24*60*60*1000));
expires = "; expires=" + date.toUTCString();
}
// Get Cookie
var mNameList = getCookie(name);
// If cookie is empty - doesn't exist then create it and put the value given
if (mNameList == "") {
document.cookie = name + "=" + value + expires + "; path=/";
} else {
// If cookie exists, check if it has already this value, if it doesn't then add oldvalue + new value to that cookie.
if(mNameList !== value){
var newValue = mNameList + ';' + value; // "185;65"
document.cookie = name + "=" + newValue + expires + "; path=/";
console.log("New Value Is : " + newValue);
var mNameList = getCookie(name); // Το check current cookie get it again
console.log(mNameList); // Show it - here it shows "185"
}
else{
// Value already exists in cookie - don't add it
console.log("Are same - mNameList->" + mNameList + " | currentID->" + value);
}
}
}
Getcookieを();あなたはそれを自分で行うと
function getCookie(cname) {
var name = cname + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
return "";
}