Как получить отправленный массив методом POST?
Есть скрипт:
$('body').on('click', '[name="update_cart"]', function() {
//взять данные из формы
var form = document.getElementById('form');
var form = document.forms.namedItem("form");
var formData = new FormData(form);
let arr = new Array();
//проверить в консоли
for (var p of formData.entries()) {
var total = arr.push(p[0], p[1]);
};
const arrs = new Map([
[arr[0], arr[1]],
[arr[2], arr[3]],
[arr[4], arr[5]],
[arr[6], arr[7]],
[arr[8], arr[9]],
[arr[10], arr[11]]
]);
//ajax
//Создадим объект для отправки AJAX запроса
var HttpRequest = new XMLHttpRequest();
//Функция в которую возвращается ответ от сеовера
HttpRequest.onload = function(e) {
//Проверка что результат отчета успешный (может быть 404 или другие)
if (this.status == 200) {
console.log(arrs);
console.log(arr);
//Записываем цифру в элемент корзины в верстке
document.getElementById('chart-value').innerText = this.response;
//console.log(form);
} else {
alert('Ошибка');
}
};
//Настройка запроса для отправки (второй параметр путь к PHP скрипту)
HttpRequest.open("POST", '/cart/', true);
//Отправка запроса на сервер
HttpRequest.send(arrs);
});
На выходе у него массив "arr" передается на сервер методом POST, сам массив выглядит следующим образом:

Так вот, как в файле cart мне этот массив то встречать? пробовал вот так но безуспешно:
$id = $_POST['id'];//Получаем из глобального массива $_POST id товара
$name = $_POST['name'];//Получаем из глобального массива $_POST id товара
$kol = $_POST['kol'];//Получаем количество
$kol2 = $_POST['kol2'];//Получаем количество
$price = $_POST['price'];//Получаем количество
$bouquet = $_POST['bouquet'];//Получаем количество
По хорошему мне нужно присвоить переменным значения из этого массива по ключам
Ответы (1 шт):
Автор решения: Михаил Ребров
→ Ссылка
Допустим у нас есть массив $_POST
$_POST = [
'id' => 1,
'name' => 'Егор',
'kol' => 2,
'kol2' => 3,
'price' => 1250,
'bouquet' => 15
];
И его можно будет извлечь в переменные следующим образом:
extract($_POST);
extract — Импортирует переменные из массива в текущую таблицу символов
https://www.php.net/manual/ru/function.extract.php
После чего будут доступны следующие переменные
extract($_POST);
// извлекли из POST следующие переменные:
// $id, $name, $kol, $kol2, $price, $bouquet
// пример использования извлеченных переменных
echo "id: $id \n";
echo "name: $name \n";
echo "kol: $kol \n";
echo "kol2: $kol2 \n";
echo "price: $price \n";
echo "bouquet: $bouquet \n";
вывод
id: 1
name: Егор
kol: 2
kol2: 3
price: 1250
bouquet: 15