window.addEventListener('click', (event) =>{
if(event.target.hasAttribute('data-cart')){
const card = event.target.closest('.card');
const cardInfo = {
id: card.dataset.id,
counter: card.querySelector('.control-info').innerText
}
let local = localStorage.getItem('cart');
if(local !== null){
local = JSON.parse(local);
} else local = [];
local.push(cardInfo);
localStorage.setItem("cart", JSON.stringify(local));
fetch('http://shop/corzina.php', {
method: 'POST',
body: localStorage.getItem('cart'),
headers: {
'Content-type': 'application/x-www-form-urlencoded',
},
})
.then((response) => response.text())
.then((data) => {
console.log(data)
})
<?php
if($_SERVER['REQUEST_METHOD'] === 'POST'){
$out = json_decode($_POST , true);
print_r($out);
В итоге получаю ошибку, хотя онлайн декодер нормально преобразует в массив!
<br />
<b>Warning</b>: json_decode() expects parameter 1 to be string, array given in <b>C:\OpenServer\domains\shop\corzina.php</b> on line <b>3</b><br />
$_POST. Выведите черезvar_dumpпеременную$_POSTи посмотрите какого она типа и что она в себе содержит – rusgeli Nov 03 '22 at 10:37