Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.04.2014, 15:33
Интересующийся
Отправить личное сообщение для Kimtom Посмотреть профиль Найти все сообщения от Kimtom
 
Регистрация: 09.03.2011
Сообщений: 18

Снова email, снова...
Здравствуйте, попросили сделать отправку email с сайта. И если на странице одна форма, то всё работает. Но формы на одной странице 2 и они имею разные поля. Отправка, почему то, не работает

<form class="form" id="free-form" style="width:555px;" action="#" method="post" onsubmit="okSend()">
		            <div class="controls">
		                <input type="text" name="trial_name" id="trial_name" class="form-control"  placeholder="Имя" required>
		            </div>
		            <div class="controls">
		                <input name="trial_email" id="trial_email" type="text"  class="form-control"  placeholder="Email"  required>
		            </div>
		            <div class="controls send">
		              <button type="submit" class="btn btn-lg">Получить пробный урок</button>
		            </div>
		          </form>


под формой сразу javascript
<script type="text/javascript">
	$.ajax({
        type: "POST",
        url: "sendtrial.php",
        data: document.forms["free-form"].serialize(),
        success: document.forms.free-form.reset();
        }
    });
</script>


далее по коду другая форма с другим id и другими полями. Соответственно, там другой файл php. Однако, ничего не отправляется
Подзреваю, что это страшный быдлокод. Подскажите, как сделать правильно?
Спасибо за понимание. Искал и ничего конкретного не нашел. Всё равно что то не получалось
А ещё не знаю куда поставить document.forms.free-form.reset();, что бы форма после отправки очистилась
Ответить с цитированием
  #2 (permalink)  
Старый 06.04.2014, 16:09
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Вставить на страницу:
$(document).ready(function() {
  $('form').on('submit', function() {
    $.ajax({
     type: "POST",
     url: this.action,
     data: $(this).serialize()
    });
    this.reset();
    return false;
  });
});

Формы будут отправляться на тот скрипт, который указан в атрибуте action тега form. И что за функция okSend в onsubmit стоит?

P.S. Этот код подходит только если на странице нет и не планируется других форм, кроме отправки мыла. Если есть другие формы, то выборку делайте по id.

Последний раз редактировалось jsnb, 06.04.2014 в 16:22.
Ответить с цитированием
  #3 (permalink)  
Старый 06.04.2014, 16:22
Интересующийся
Отправить личное сообщение для Kimtom Посмотреть профиль Найти все сообщения от Kimtom
 
Регистрация: 09.03.2011
Сообщений: 18

okSend просто выводит alert о том, что письмо отправлено...
Ответить с цитированием
  #4 (permalink)  
Старый 06.04.2014, 16:23
Интересующийся
Отправить личное сообщение для Kimtom Посмотреть профиль Найти все сообщения от Kimtom
 
Регистрация: 09.03.2011
Сообщений: 18

это вставить где то внизу страницы?
На форме ещё есть кнопки paypal, а они как раз имеют формат

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
....
</form>
Ответить с цитированием
  #5 (permalink)  
Старый 06.04.2014, 16:32
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Сообщение от Kimtom Посмотреть сообщение
okSend просто выводит alert о том, что письмо отправлено...
Сообщение от Kimtom Посмотреть сообщение
это вставить где то внизу страницы?
На форме ещё есть кнопки paypal, а они как раз имеют формат
Тогда убрать onsubmit из тега form и делать выборку по id форм. Как-то так:
$(document).ready(function() {
  $('#form_id1, #form_id2').on('submit', function() {
    var form = this;
    $.ajax({
      type: "POST",
      url: this.action,
      data: $(this).serialize(),
      success: function() {
        alert('успех');
        form.reset();
      },
      error: function() {
        alert('ошибка');
      }
    });
    return false;
  });
});


form_id1 и form_id2 заменить на id форм. Символ "#" не трогать, запятую тоже. Вставлять в любое место страницы (в тег script естетсвенно), код сработает только после загрузки документа.

Последний раз редактировалось jsnb, 06.04.2014 в 16:35.
Ответить с цитированием
  #6 (permalink)  
Старый 06.04.2014, 16:53
Интересующийся
Отправить личное сообщение для Kimtom Посмотреть профиль Найти все сообщения от Kimtom
 
Регистрация: 09.03.2011
Сообщений: 18

выводится "успех", но письмо не приходит. Хотя сами скрипты php рабочие и находятся в том же каталоге, что и страница index.hml
Вот один из них:

<?php
if($_POST){
	$to = "mymail@m.mail";
	$c_name = trim(strip_tags(stripslashes($_POST['trial_name'])));
	$c_mail = trim(strip_tags(stripslashes($_POST['trial_email'])));

	if (c_name!="" && c_mail!="") {
	    $message = "
<html> 
	<body> 
		<b>Новое сообщение!</b><br/> 
		<b>Имя:</b> {$c_name}<br/> 
		<b>E-mail:</b> {$c_mail}<br/> 
	</body> 
</html>"; 
	
		$subject = "Пробный урок";
	    $headers = "MIME-Version: 1.0\r\n"; 
	$headers .= "Content-type: text/html; charset=utf-8\r\n"; 
	    $headers .= "From: {$c_mail}\r\n"; 
	
    mail($to, $subject, $message, $headers);
}
?>

Последний раз редактировалось Kimtom, 06.04.2014 в 17:05.
Ответить с цитированием
  #7 (permalink)  
Старый 06.04.2014, 17:31
Профессор
Отправить личное сообщение для jsnb Посмотреть профиль Найти все сообщения от jsnb
 
Регистрация: 15.03.2014
Сообщений: 561

Закрывающей скобки для второго if в скрипте нет...
Ответить с цитированием
  #8 (permalink)  
Старый 06.04.2014, 17:42
Интересующийся
Отправить личное сообщение для Kimtom Посмотреть профиль Найти все сообщения от Kimtom
 
Регистрация: 09.03.2011
Сообщений: 18


Вот я голова соломенная. Теперь работает, спасибо!
Теперь осталось добавить проверки и всё.
Спасибо большое!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Add/Remove Email Juli174 Общие вопросы Javascript 0 16.12.2013 12:52
Валидность email JS mctravis Элементы интерфейса 0 09.12.2013 16:35
Валидация Пароля и Email 203 Элементы интерфейса 4 26.05.2013 15:44
валидация email zlodiak Библиотеки/Тулкиты/Фреймворки 2 27.02.2013 15:55
Отправка формы на Email Donny Работа 4 26.07.2011 09:04