#javascript #php #html #ajax
#javascript #php #HTML #ajax
Вопрос:
У меня есть контактная форма на веб-сайте, информация из контактной формы, которую я хочу получать по электронной почте со всеми полями, заполненными пользователем, но я не могу. Что не так с кодом. Может быть, есть какой-то другой способ, которым я могу это сделать. Пожалуйста, помогите это исправить!
HTML «contact.php «:
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name = "viewport" content="width=device-width, initial-scale=1">
<title>CloudK</title>
<link rel="stylesheet" href="styles/bootstrap-337.min.css">
<link rel="stylesheet" href="font-awsome/css/font-awesome.min.css">
<link rel="stylesheet" href="styles/contactsyle.css">
<link rel="stylesheet" href="styles/stylesss.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>
<body>
<div class="cus-padding">
<div class="bg-area"></div>
<div class="container">
<div class="row">
<div class="col-md-7">
<div class="contact-form">
<h2>Связаться с Нами</h2>
<form action="" id="mailForm">
<div class="row">
<div class="col-md-6">
<input type="text" name="name" id="name" value="" placeholder="Имя">
</div>
<div class="col-md-6">
<input type="text" name="lastname" id="lastname" value="" placeholder="Фамилия">
</div>
</div>
<div class="row">
<div class="col-md-6">
<input type="tel" name="phone" id="phone" value="" placeholder="Номер Телефона">
</div>
<div class="col-md-6">
<input type="email" name="email" id="email" value="" placeholder="Электроная почта">
</div>
<div class="col-md-6">
<input type="text" name="company" id="company" value="" placeholder="Название компании">
</div>
</div>
<p><textarea name="message" id="message" cols="30" rows="10"></textarea></p>
<p><input type="submit" id="sendMail" value="Отправить"></input></p>
</form>
<div id="errorMess">
</div>
Ниже приведен JS «formMail.js «:
$("#sendMail").on("click", function(){
var name = $("#name").val().trim();
var lastname = $("#lastname").val().trim();
var email = $("#email").val().trim();
var phone = $("#phone").val().trim();
var company = $("#company").val().trim();
var message = $("#message").val().trim();
if (name == ""){
$("#errorMess").text("Введите Ваше Имя!");
return false;
}else if (lastname == ""){
$("#errorMess").text("Введите Вашу Фамилию!");
return false;
}else if (email == ""){
$("#errorMess").text("Введите Вашу Электроную почу!");
return false;
}else if (phone == ""){
$("#errorMess").text("Введите Ваш номер телефона!");
return false;
}else if (company == ""){
$("#errorMess").text("Введите название компании!");
return false;
}
$("#errorMess").text("");
$.ajax({
url: 'ajax/mail.php',
type: 'POST',
cache: false,
data: {'name':name, 'lastname':lastname, 'email':email, 'phone':phone, 'company':company, 'message':message},
dataType: 'html',
beforeSend: function(){
$("#sendMail").prop("disabled", true);
},
success: function(data){
if(!data)
alert("Были ошибки, заявка не отправлена!");
else
$("#mailForm").trigger("reset");
$("#sendMail").prop("disabled", false);
}
});
});
и php «mail.php «:
<?php
$name = $_POST['name'];
$lasname = $_POST['lasname'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$company = $_POST['company'];
$message = $_POST['message'];
$subject = "=?utf-8?B?".base64_encode("Сообщение с Сайта")."?=";
$headers = "From: $emailrnReply-to: $emailrnContent-type: text/html; charset=utf-8rn";
$success = mail("emil10azizov@gmail.com", $subject, $message, $headers);
echo $success;
?>;
Комментарии:
1. Что значит » не можешь «? Где что-то пошло не так?
2. Я ничего не получаю. Сначала я получал только $message = $ _POST[‘message’]; (поле сообщения) без имени, фамилии, телефона, теперь я ничего не получаю.
3. Итак, начните с сужения круга… Используйте консоль отладки вашего браузера, публикуются ли данные? Вы в гораздо лучшем положении для отладки этого, чем мы.
4. @ficuscr не могу понять! вот почему я это разместил.
5. Ну, только вы можете сказать нам то, что нам нужно знать. Можете ли вы сказать нам, срабатывает ли JavaScript для обработчика событий #sendMail click? И если да, включает ли генерируемый им запрос Xhr значения, которые вы хотите ОПУБЛИКОВАТЬ? Вы знаете, как проверить эти две вещи?
Ответ №1:
$lastname = $_POST[‘lastname’]; вместо $lasname = $_POST[‘lasname’]; (опечатка с t)
$message = '<html>
<head>
<title>Call me back</title>
</head>
<body>
<p><b>Name:</b> '.$_POST['name'].'</p>
<p><b>LastName:</b> '.$_POST['lastname'].'</p>
<p><b>Phone:</b> '.$_POST['phone'].'</p>
<p><b>Company:</b> '.$_POST['company'].'</p>
<p><b>Company:</b> '.$_POST['message'].'</p>
</body>
</html>';
$subject = "=?utf-8?B?".base64_encode("Сообщение с Сайта")."?=";
$headers = "From: $emailrnReply-to: $emailrnContent-type: text/html; charset=utf-8rn";
$success = mail("emil10azizov@gmail.com", $subject, $message, $headers);
echo $success;