Доброго дня! У меня возникли затруднения. Потихоньку познаю AJAX и PHP. Решил попрактиковаться. Много просмотрел готовых проектов, отдаленно напоминающих мой. Интересно разобраться со своим.
У меня есть форма с полями ввода имени,трубы,адреса и сообщения.
Вопрос1. Что мне следует указать в атрибутах action и onsubmit? Я правильно сделал что указал свой php-файл, который будет проводить обработку данных? А в onsubmit я должен указать имя функции-обработчика данных формы через AJAX?
<form id="form-post" method="post" action="form.php" onsubmit="">
<input type="text" id="name" name="sender-name" value="smth">
<input type="text" id="phone" name="sender-phone" value="1234">
<input type="text" id="email" name="sender-email" value="@life.ru">
<textarea class="your-message" id="message" name="sender-message" value="mess"></textarea>
<button type="submit" name="send" value="Отправить"></button>
</form>
Форма должна отправлять данные на сервер с помощью ajax (jquery). Вот функция. Мне интересно узнать о своих ошибках. Всё ли добавлено из того, что требуется по моей задаче? Правильно ли оформлен error?Как насчет оформления complete?
$(document).ready(function(){
$("#form-post").submit(function() { //устанавливаем событие отправки для формы
var formPost=$(this);
var formData = $(this).serialize(); //собираем все данные из формы
$.ajax({
type: "POST", //Метод отправки
url: "form.php", //путь до php файла отправителя
dataType: "html",
data: formData,
success: function(data){// успешная отправка сообщения. Всё верно?
alert('Письмo oтпрaвлeнo!');
},
error: function(xhr,ajaxOptions,thrownError){// мне нужна причина ошибки. Я правильным путем иду?
alert("Косяк!");
alert(xhr.status);
alert(thrownError);
},
complete: function(){}; //а как быть здесь?
});
});
});
И напоследок тот самый php-файл "form.php". В чем состоят мои недоработки?
//ориентировочно
$to = 'ilove@world.ru'; //Почта получателя
$subject = 'Обратный звонок'; //Заголовок сообщения
$message = '
<html>
<head>
<title>'.$subject.'</title>
</head>
<body>
<p>Имя: '.$_POST['sender-name'].'</p>
<p>Телефон: '.$_POST['sender-phone'].'</p>
<p>Телефон: '.$_POST['sender-email'].'</p>
<p>Телефон: '.$_POST['sender-message'].'</p>
</body>
</html>';
$headers = "From: Отправитель <@life.ru>\r\n"; //Наименование и почта отправителя
mail($to, $subject, $message, $headers); //Отправка письма с помощью функции mail
Этот проект...мне тяжело даётся. Прошу Вашей помощи,указаний,критики. Уважаемые форумчане, буду Вам очень признателен за советы!