我正在尝试更新使用下面的PHP生成的序列化数组…
// my php and array serialization
$myArray = array( 161 => true, 180 => true );
$myData = serialize($myArray);
setcookie('my_cookie', $myData);
我正在使用jquery从我的cookie中获取这个序列化数据。
// remove item click function
$('.remove-item').click( function(e) {
// get the serialized data
console.log(Cookies.get('my_cookie'));
});
这是我返回的序列数据
a:2:{i:161;b:1;i:180;b:1;}
我希望能够取消此数据的序列化并从数组中删除一个项,然后再次序列化数据并重新设置我的cookie。
所以我可以从我的
.remove-item
按钮,并从未序列化的数组中删除此值。
它需要像这样的工作,我只是不知道该怎么做。看下面我的演练,但这显然不起作用。
JQuery
// remove item click function
$('.remove-item').click( function(e) {
// get the item id number
var removeItem = $(this).data('id');
// 161
// get the serialized data
var myData = Cookies.get('my_cookie'));
// a:2:{i:161;b:1;i:180;b:1;}
// unserialize data back to an array
var myArray = unserialize(myData);
// array(2) { [161]=> bool(true) [180]=> bool(true) }
// remove 161 from my array
myArray = $.grep(myArray, function(value) {
return value != removeItem;
});
// array(1) { [180]=> bool(true) }
// re serialize my array
var newData = serialize(myArray);
// a:1:{i:180;b:1;}
// re set cookie with new serialized data
Cookies.set('my_cookie', newData);
});
HTML
<button class="remove-item" data-id="161">Remove Item</button>
任何想法或建议都会受到赞赏。
谢谢