Вроде по логике всё верно, но не работает. Надеюсь на помощь. Реализовал так:
document.getElementById('feedback-form').addEventListener('submit', function(evt) {
var http = new XMLHttpRequest(),
f = this;
evt.preventDefault();
http.open("POST", "contacts.php", true);
http.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
http.send("name=" + f.name.value + "phone=" + f.phone.value + "&email=" + f.email.value + "&vopr=" + f.vopr.value);
http.onreadystatechange = function() {
if (http.readyState == 4 && http.status == 200) {
alert(http.responseText + ', Ваше сообщение получено.\nНаши специалисты ответят Вам в течении 2-х дней.\nБлагодарим за интерес к нашей фирме!');
f.messageFF.removeAttribute('value'); // очистить поле сообщения (две строки)
f.messageFF.value = '';
}
}
http.onerror = function() {
alert('Извините, данные не были переданы');
}
}, false);
<form method="POST" id="feedback-form">
<div class="box-input">
<label for="name">Введите имя</label>
<input required="" type="text" name="name" id="name">
</div>
<div class="box-input">
<label required="" for="email">Введите e-mail</label>
<input type="email" name="email" id="email">
</div>
<div class="box-input">
<label for="phone">Введите контактный телефон</label>
<input type="tel" name="phone" id="phone">
</div>
<div class="box-input">
<label for="vopr">Задайте вопрос</label>
<input type="text" name="vopr" id="vopr">
</div>
<div class="box-button">
<button type="submit">Отправить</button>
</div>
</form>
И сама отправка на почту:
<?
if (array_key_exists('messageFF', $_POST)) {
$to = 'ravlex@mail.ru';
$subject = 'Заполнена контактная форма с '.$_SERVER['HTTP_REFERER'];
$subject = "=?utf-8?b?". base64_encode($subject) ."?=";
$message = "Имя: ".$_POST['name']."\nEmail: ".$_POST['email']."\nIP: ".$_SERVER['REMOTE_ADDR']."\nВопрос: ".$_POST['vopr']."\nТелефон: ".$_POST['phone'];
$headers = 'Content-type: text/plain; charset="utf-8"';
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Date: ". date('D, d M Y h:i:s O') ."\r\n";
mail($to, $subject, $message, $headers);
echo $_POST['name'];
}
?>
В форме ошибок на первый взгляд нет. Но она должна отправить данные на сервер по адресу:
http.open("POST", "contacts.php", true);
и получить корректный ответ. Вероятнее всего следует протестировать работу сервера, вручную (можно в терминале) оправив ему те-же данные, которые передает форма. Посмотрев ответ вы поймете где проблема.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
При загрузке страница показывает сразу iframeЕсть html страница и в ней iframe
Как сделать, чтобы при нажатии на <span> срабатывало событие onclick без перехода по ссылке?
Допустим, мы хотим сделать элемент (заголовок, картинку в контейнере, блок в сайдбаре и тд
Мне нужно сделать так, чтобы данные (в данном случае 4 цифры) из textarea брались как var и чтобы их можно было сравнить с другими переменными используя...