Я пытаюсь обновить сериализованный массив, который был сгенерирован с использованием 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>
Любые идеи или указатели будут высоко оценены.
Спасибо