Как передавать данные из js в php POST запросом?
Имеется форма на сайте и веб сервис, который получает данные этой формы и возвращает по ним ответ. Js считывает поле формы, отправляет их в php следущим образом:
async function cardBalanceRequest(){
let number = document.querySelector('.bonus_modal #block__bonus').value;
if(number !== '' && number.match(/^([0-9]{7})$/)){
url = '/assets/templates/card_balance.php';
try {
let response = await fetch(url, {
method: 'POST',
headers: {
"Content-type": "application/x-www-form-urlencoded; charset=UTF-8"
},
body: 'number='+number //JSON.stringify()
});
const json = await response.json();
php получает введенную строку следующим образом:
$number = $_POST['number'];
Подскажите пожалуйста - как можно записать в body более одной переменной и после считать из в php? Пробовал передавать в виде массива, 2мя переменными подряд с различными разделителями, сработала только вот такая запись, в последствии разделенная с помощью explode()
let very_unikalno_data = number+';'+ordernumber;
/*немного кода*/
body: 'number='+very_unikalno_data
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Если тело отсылается через JSON.stringify(), то в PHP:
$rawJson = file_get_contents('php://input');
$postData = json_decode($rawJson, true);
Можно отправлять через FormData
let fd = new FormData();
fd.append("var1", 'test')
fd.append("var2", "Hello World");
fetch('/servers/server.php', {method: "POST", body: fd})
Тогда на PHP прилетит как обычно через $_POST