Показать сообщение отдельно
  #1 (permalink)  
Старый 24.11.2015, 12:19
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Отправка данных формы. Как выглядит структура метода с AJAX (по JQuery)?
Доброго дня! У меня возникли затруднения. Потихоньку познаю 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


Этот проект...мне тяжело даётся. Прошу Вашей помощи,указаний,критики. Уважаемые форумчане, буду Вам очень признателен за советы!
Ответить с цитированием