@Valsin

Почему $_POST пустой?

Здравствуйте! Почему $_POST приходит пустой? (Если изменить type кнопки на submit, то все приходит, но тогда открывается отдельная страница, а это не ок)

<form action="mail.php" method="post">
	<div class="popup-form__wrap">
		<label class="animated" id="labelPhone" for="#modal-phone">Введите номер телефона</label>
		<input name="modalphone" id="modal-phone" placeholder="Ваш номер телефона" type="text">
	</div>
	<div class="popup-form__wrap">
		<label class="animated" id="labelName" for="#modal-name">Введите Ваше имя</label>
		<input id="modal-name" placeholder="Ваше имя" type="text">
	</div>
	<button class="button" type="button" id="send"><span>Оставить заявку</span></button>
</form>


let send = document.querySelector('#send');
send.onclick = sendEmail;
function sendEmail(e) {
	let userName = document.querySelector('#modal-name').value;
	let userPhone = document.querySelector('#modal-phone').value;
	if (userName.trim() != '' && userPhone != '') {
		fetch('mail.php', { // url, на который посылается запрос
		    method: 'POST', // Метод
		    headers: {
		        'Content-Type': 'application/x-www-form-urlencoded',
		    },
		    data: {
		    	'userPhone' : 1,
		    	'userName' : userName
		    }
		})
		/*.then(response => response.text())
		.then(response => {
			console.log(response);
		});*/
	}
}

<?php 
$phone = $_POST['userPhone'];
$message = '';
$message .= '<h1>Заказ</h1>';
$message .= '<p>Телефон: '. $phone .'</p>';
//$message .= '<p>Клиент: '.$_POST['ename'].'</p>';
print_r($message);
?>
  • Вопрос задан
  • 1395 просмотров
Решения вопроса 1
edward_freedom
@edward_freedom
у тебя указано
'Content-Type': 'application/x-www-form-urlencoded',

так и передавай как указал
body: 'userPhone=1&userName=' + userName


Вот вариант удобнее, с офф сайта

let user = {
  name: 'John',
  surname: 'Smith'
};

let response = await fetch('/article/fetch/post/user', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json;charset=utf-8'
  },
  body: JSON.stringify(user)
});

let result = await response.json();
alert(result.message);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽