Есть форма, в которой пользователь выбирает нужное количество лицензий общую стоимость,а так, вводит имя,телефон и почту, после чего должна произойти отправка на почту мне. Проблема в том, что на почту приходит только информация из поля с именем и почтой, остальные пустые.
Не могу понять в чем может быть проблема,помогите, пожалуйста) Разметка:
<form id="contact_form" method="post" action="php/mail.php">
<input type="button" value="−" id="minus" class="mycount button-minus">
<p id="count" name="lisence_count" class="mycount simple-count">1</p>
<input type="button" value="+" id="plus" class="mycount button-plus">
<input type="text" id="name" name="name" class="myinfo" placeholder="Ваше имя">
<input type="text" id="phone" name="phone" class="myinfo" placeholder="Телефон">
<input type="email" id="email" name="email" class="myinfo" placeholder="Email">
<button type="submit" id="send-button" class="submit-button">Подключить<span id="current-price" name="price" class="tarif-price">$10</span></button>
</form>
JS:
$('#contact_form .submit-button').on('click', function() {
//берем путь php обработчика
order_url = $('#contact_form').attr('action');
//посылаем асинхронный запрос на сервер и передаем все данные формы
$.post(order_url,{
name: $('#contact_form input[name=name]').val(),
tel: $('#contact_form input[name=phone]').val(),
email: $('#contact_form input[name=email]').val(),
lisence_count: $('#contact_form #count').val(),
price: $('#contact_form #current-price').val(),
send: "1"
}, "html");
return false;
});
PHP:
header('Content-type: text/html; charset=utf-8');
error_reporting(0);
if(!empty($_POST['send'])) {
$name = substr(htmlspecialchars(trim($_POST['name'])), 0, 300);
$tel = substr(htmlspecialchars(trim($_POST['phone'])), 0, 100);
$email = substr(htmlspecialchars(trim($_POST['email'])), 0, 100);
$lisence = substr(htmlspecialchars(trim($_POST['lisence_count'])), 0, 100);
$price = substr(htmlspecialchars(trim($_POST['price'])), 0, 100);
$ip = $_SERVER['REMOTE_ADDR'];
$mess = "Имя: <b>".$name."</b><br />";
$mess .= "Телефон: <b>".$tel."</b><br />";
$mess .= "Email: <b>".$email."</b><br />";
$mess .= "Количество лицензий: <b>".$lisence."</b><br />";
$mess .= "Цена: <b>".$price."</b><br />";
mail("thisismymail@gmail.com", $theme, $mess, "From: GSuite \nContent-Type: text/html;\n charset=utf-8\nX-Priority: 0");
}
else {
echo "<h2>Ошибка! Попробуйте еще раз.</h2>";
}
Пусто потому, что:
The .val() method is primarily used to get the values of form elements such as input, select and textarea. When called on an empty collection, it returns undefined. https://api.jquery.com/val/
<p id="count" name="lisence_count" class="mycount simple-count">1</p>
это параграф, потому $('#contact_form #count').val()
будет undefined
<span id="current-price" name="price" class="tarif-price">$10</span>
это тэг span
, поэтому $('#contact_form #current-price').val()
будет undefined
Телефон пуст потому, что в POST-запросе вы передаёте tel
tel: $('#contact_form input[name=phone]').val(),
а в php пытаетесь получить phone
$tel = substr(htmlspecialchars(trim($_POST['phone'])), 0, 100);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Сломал голову, помогите пожалуйста решить проблемуУ меня есть небольшой скрипт, который выполняет php exec команду с каталогами на сетевом ресурсе
Нужно что бы при авторизации были три поля username, password, id_companyИ при авторизации id_company это был префикс базы данных