Не отправляются данные аякс запроса в PHP
Я пытаюсь отправить данные в PHP с помощью ajax запроса. Вот мой js файл
var buttons = document.getElementsByClassName('buy_btn');
console.log(buttons);
var titles = document.getElementsByClassName('product__title');
var descriptions = document.getElementsByClassName('product__description');
var prices = document.getElementsByClassName('product__price');
for (let i = 0; i < buttons.length; i++) {
buttons[i].onclick = function () {
var title = titles[i].innerHTML;
var description = descriptions[i].innerHTML;
var price = prices[i].innerHTML;
$.ajax({
type: "POST",
url: "php/buy_product.php",
data: { 'Title': title, 'Description': description, 'Price': price },
success: function () {
console.log("Success");
},
error: function () {
console.log("Error");
}
})
}
}
В PHP коде я хочу взять эти данные:
$title = $_POST['Title'];
$description = $_POST['Description'];
$price = $_POST['Price'];
Однако он не видит эти данные. При выводе массива POST этих данных также нет. URL правильный, я проверял. Все данные верны. Функция success ajax запроса срабатывает. Спасибо за любую помощь
Ответы (1 шт):
Автор решения: Константин Бронштейн
→ Ссылка
Попробуйте использовать let formData = new FormData(); и enctype: 'multipart/form-data'как здесь:
buttons[i].onclick = function () {
var title = titles[i].innerHTML;
var description = descriptions[i].innerHTML;
var price = prices[i].innerHTML;
var formData = new FormData();
formData.append('Title',title);
formData.append('Description',description);
formData.append('Price',price );
$.ajax({
type: "POST",
url: "php/buy_product.php",
enctype: 'multipart/form-data',
data: formData,
success: function () {
console.log("Success");
},
error: function () {
console.log("Error");
}
})
}