0
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 />
Kirill
  • 1
  • 2
    А ты переведи в переводчике фразу.......не стесняйся – Алексей Шиманский Nov 03 '22 at 10:32
  • Вы вместо того, чтобы отдать функции строку с кодированным json, отдаете ей весь массив $_POST. Выведите через var_dump переменную $_POST и посмотрите какого она типа и что она в себе содержит – rusgeli Nov 03 '22 at 10:37
  • @rusgeli array(1) { ["""]=> array(1) { ["{"id":"3","counter":"1"},{"id":"2","counter":"1"},{"id":"2","counter":"1"}"]=> string(0) "" } } Подскажите что из этого брать тогда? – Kirill Nov 03 '22 at 14:23

0 Answers0