Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #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


Этот проект...мне тяжело даётся. Прошу Вашей помощи,указаний,критики. Уважаемые форумчане, буду Вам очень признателен за советы!
Ответить с цитированием
  #2 (permalink)  
Старый 24.11.2015, 12:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Coriolan161,
строка 21 return false;
Сообщение от Coriolan161
Что мне следует указать в атрибутах action и onsubmit?
onsubmit можно не указывать совсем
action только на случай отключения js
Ответить с цитированием
  #3 (permalink)  
Старый 24.11.2015, 12:28
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Coriolan161,
complete выполняется в конце работы $.ajax после success или error
Ответить с цитированием
  #4 (permalink)  
Старый 24.11.2015, 12:59
Аватар для Coriolan161
Профессор
Отправить личное сообщение для Coriolan161 Посмотреть профиль Найти все сообщения от Coriolan161
 
Регистрация: 21.11.2015
Сообщений: 440

Так. По порядку. У меня с AJAX косяков нет? Еррор смущает меня. Подскажите, пжл, что в моём случае можно добавить в complete?

По поводу PHP: замечаний нет?
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2015, 13:24
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,144

Сообщение от Coriolan161
Подскажите, пжл, что в моём случае можно добавить в complete?
вывод сообщения ваш заказ принят если ок или иное если не ок. например
по php ждите спецов
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2015, 20:17
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от Coriolan161
По поводу PHP: замечаний нет?
Есть:
1) Данные пришедшие формой не проверяются.
2) Почтовому сообщению не задается кодировка и тип его.
3) Национальный текст темы сообщения, отправителя, то есть то, что в заголовках, нужно кодировать.

Вообще отправление почтовых сообщений куда более ответственное действие, чем просто mail(). В сети об этом очень много информации, ищите и изучайте.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery ajax отправка запроса в htpps vova_b jQuery 19 07.03.2013 18:20
Ajax разбор метода mycoding jQuery 14 21.05.2010 10:57
Ajax и три <form> не работает. Как правильно сделать листание записей из базы данных? vlad275 AJAX и COMET 2 14.12.2009 14:04
Как отключить submit формы в jQuery? khusamov Общие вопросы Javascript 2 08.07.2009 00:54
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12