Я использую PHP 7.3 с MySQL v5.6.
Просматривая страницу каталога, я сохранил некоторые идентификаторы элементов в localStorage.wishlistStorage.data
, и теперь на странице списка желаний я хочу получить этот список идентификаторов для отображения. Я использую PHP, потому что позже я буду отправлять и получать элементы из базы данных. Кроме того, легко создать HTML на лету, используя PHP и массив POST. К сожалению, я борюсь с AJAX XMLHttpRequest.
Я загружаю Javascript файл в нижней части страницы, который получает данные localStorage:
var wishlistStorage = {};
window.addEventListener("load", function() {
wishlistStorage.get();
loadWishlist();
});
wishlistStorage = {
data : null, // empty storage
get : function() {
wishlistStorage.data = localStorage.getItem("wishlistStorage");
if(wishlistStorage.data === null) {
wishlistStorage.data = { items: [], item_notes: [], comments: '' };
wishlistStorage.save();
}
else {
wishlistStorage.data = JSON.parse(wishlistStorage.data);
}
}
};
// get wishlist contents
function loadWishlist() {
var items = wishlistStorage.data.items.join("%20");
var wishlistRequest;
if(window.XMLHttpRequest) {
wishlistRequest = new XMLHttpRequest();
} else {
wishlistRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
wishlistRequest.onreadystatechange = function() {
if(wishlistRequest.readyState == 4 && wishlistRequest.status == 200) {
console.log("Got them.");
} else {
console.log("I see nothing.");
}
wishlistRequest.open("POST", "_self", true);
wishlistRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
wishlistRequest.send("wishlist_items=" + encodeURIComponent(items));
}
}
В тело списка желаний. php
<?php
if (array_key_exists('wishlist', $_POST)) {
$temporary_wishlist = $_POST['wishlist'];
echo "Yes, it works! $temporary_wishlist";
} else {
echo 'Invalid parameters!';
}
?>
Все, что я получаю, это сообщение "Неверные параметры". Ни одно из сообщений console.log не появляется. Куда я иду не так?
источник