Jump to content
  • 0

Проблема с формой отправки заявки на сайте


bev11321
 Share

Question

После отправки заявки через форму, письмо мне на почту приходит, но не понимают посетители, что они его отправили.. . Форма так и остается на месте без изменений...

 

Код в файле index.html

<form id="form1" method="POST" action="index1.php">					<p>Оставьте заявку</p>					<ul>						<li><input type="text" placeholder="Введите имя" value="" name="name" class="required"></li>						<li><input type="text" placeholder="Введите телефон" value="" name="phone" class="required iphone"></li>						<li><button class="button" type="submit">Отправьте заявку</button></li>						<li><p>Ваши контактные данные в безопасности<br> и не будут переданы третьим лицам</p></li>					</ul>				</form>

Файл форму index1.php:

<?php /* Здесь проверяется существование переменных */  if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['name'])) {$name = $_POST['name'];} if (isset($_POST['adress'])) {$adress = $_POST['adress'];}$backurl = "http://мой сайт/index.html";/* Сюда впишите свою эл. почту */ $address = "моя почта";/* А здесь прописывается текст сообщения, \n - перенос строки */ $mes = "Тема: Заказ обратного звонка!\nТелефон: $phone\nИмя: $name\nE-mail: $adress";/* А эта функция как раз занимается отправкой письма на указанный вами email */$sub='Заказ с сайта'; //сабж$email='заказ <сайт>'; // от кого $send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");ini_set('short_open_tag', 'On');header('Refresh: 3; URL=index.html');?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="refresh" content="3; url=index.html"><title>С вами свяжутся</title><meta name="generator"><style type="text/css">body{      background: #ffffff url(img/zakaz.jpg) top -70% center no-repeat;   }<script type="text/javascript">function reload() {location = \"$backurl\"};setTimeout('location.replace("/index.html")', 3000);/*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/</script> </head></body></html>

Мне советовали, что не хватает строк, типа:

 

echo ("<script language=\"javascript\">alert('Ваша заявка добавлена на расмотрение! Спасибо!');</script>"); 
echo ("<script language=\"javascript\">window.location = 'index1.php'</script>"); 

Edited by bev11321
Link to comment
Share on other sites

14 answers to this question

Recommended Posts

  • 0
Без нее тоже самое было....потом уже поставил
 

Но там синтаксическая ошибка, и этот код совершенно не нужен, а

 setTimeout('location.replace("/index.html")', 3000); 

отлично работает, просто вы переходите на страницу index.html со страницы index.html, а надо переходить на страницу, сообщающую результат отправки.

Link to comment
Share on other sites

  • 0

 

Аяксом формы отправляйте.    http://www.malsup.com/jquery/form/

 

Нет, спасибо, у меня там все съедет, и стили нужно будет прописывать...

 

Как интересно аяксом формы съедут ? Самое простое добавить обработчик на js, а там

как хотите людям показывайте что форму отправляете.

Link to comment
Share on other sites

  • 0

 

Без нее тоже самое было....потом уже поставил
 

Но там синтаксическая ошибка, и этот код совершенно не нужен, а

 

 

 setTimeout('location.replace("/index.html")', 3000);

отлично работает, просто вы переходите на страницу index.html со страницы index.html, а надо переходить на страницу, сообщающую результат отправки.

 

 

 

Вы имели ввиду, что-то типа этого кода:

<?php /* Здесь проверяется существование переменных */  if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['name'])) {$name = $_POST['name'];} if (isset($_POST['adress'])) {$adress = $_POST['adress'];}/* Сюда впишите свою эл. почту */ $address = "bev11321@yandex.ru";/* А здесь прописывается текст сообщения, \n - перенос строки */ $mes = "Тема: Заказ обратного звонка!\nТелефон: $phone\nИмя: $name\nE-mail: $adress";/* А эта функция как раз занимается отправкой письма на указанный вами email */$sub='Заказ с сайта'; //сабж$email='lyapko <zdorovie-kama.ru/blog/lyapko>'; // от кого $send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");ini_set('short_open_tag', 'On');header('Refresh: 3; URL=index.html');?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="refresh" content="3; url=index.html"><title>С вами свяжутся</title><meta name="generator"><style type="text/css">body{      background: #ffffff url(img/zakaz.jpg) top -70% center no-repeat;   }<script type="text/javascript">setTimeout('location.replace("/index.html")', 3000);/*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/</script> </head></body></html>

Но это был как раз изначальный код, который и не работал...

Link to comment
Share on other sites

  • 0
Вы имели ввиду, что-то типа этого кода:

Нет, надо создать страницу "success.html" и написать там:

<!DOCTYPE html><html>  <head>  </head>  <body>    Форма успешно отправлена!  </body></html>

А в "index.html":

<?php /* Здесь проверяется существование переменных */  if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['name'])) {$name = $_POST['name'];} if (isset($_POST['adress'])) {$adress = $_POST['adress'];}/* Сюда впишите свою эл. почту */ $address = "bev11321@yandex.ru";/* А здесь прописывается текст сообщения, \n - перенос строки */ $mes = "Тема: Заказ обратного звонка!\nТелефон: $phone\nИмя: $name\nE-mail: $adress";/* А эта функция как раз занимается отправкой письма на указанный вами email */$sub='Заказ с сайта'; //сабж$email='lyapko <zdorovie-kama.ru/blog/lyapko>'; // от кого $send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");ini_set('short_open_tag', 'On');header('Refresh: 3; URL=index.html');?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="refresh" content="3; url=index.html"><title>С вами свяжутся</title><meta name="generator"><style type="text/css">body{      background: #ffffff url(img/zakaz.jpg) top -70% center no-repeat;   }<script type="text/javascript">setTimeout('location.replace("/success.html")', 3000);/*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/</script> </head></body></html> 

 

Edited by afdw
Link to comment
Share on other sites

  • 0

 

Вы имели ввиду, что-то типа этого кода:

Нет, надо создать страницу "success.html" и написать там:

<!DOCTYPE html><html>  <head>  </head>  <body>    Форма успешно отправлена!  </body></html>

А в "index.html":

<?php /* Здесь проверяется существование переменных */  if (isset($_POST['phone'])) {$phone = $_POST['phone'];} if (isset($_POST['name'])) {$name = $_POST['name'];} if (isset($_POST['adress'])) {$adress = $_POST['adress'];}/* Сюда впишите свою эл. почту */ $address = "bev11321@yandex.ru";/* А здесь прописывается текст сообщения, \n - перенос строки */ $mes = "Тема: Заказ обратного звонка!\nТелефон: $phone\nИмя: $name\nE-mail: $adress";/* А эта функция как раз занимается отправкой письма на указанный вами email */$sub='Заказ с сайта'; //сабж$email='lyapko <zdorovie-kama.ru/blog/lyapko>'; // от кого $send = mail ($address,$sub,$mes,"Content-type:text/plain; charset = utf-8\r\nFrom:$email");ini_set('short_open_tag', 'On');header('Refresh: 3; URL=index.html');?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><meta http-equiv="refresh" content="3; url=index.html"><title>С вами свяжутся</title><meta name="generator"><style type="text/css">body{      background: #ffffff url(img/zakaz.jpg) top -70% center no-repeat;   }<script type="text/javascript">setTimeout('location.replace("/success.html")', 3000);/*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/</script> </head></body></html> 

 

 

 

 

Файл создал success.html с кодом...залил, а в какой index.html файл второй код прописывать? В основной?

Link to comment
Share on other sites

  • 0

Зачем создавать отдельный файл ? Как и сказали выше, используйте аякс.

 

Если форма работает, но нет сообщений об ошибке или успешной отправке - отправляется аякс запрос на обработчик, после принимаем ответ от обработчика, в котором он сообщает от ошибке или успешной отправке через echo

$('form').submit(function (e) {            e.preventDefault();            var data = $(this).serialize();            $.ajax({                type: "POST",                url: "mail.php",                data: data,                success: function (html) {                    $(this).find('.result').empty().append(html);                }            });        });

Соответственно урл обработчика и вставку ответа вставляем туда, куда требуется вам.

$(this).find('.result').empty().append(html);

Советую почитать по аякс и разобраться, что и как работает.

Edited by Q4Dizzy
Link to comment
Share on other sites

  • 0

Уф, читал-читал про аяк

 

Попробую разобраться, спасибо...Сам просто не силен в этом...может докумекаю чего

 

Сейчас покопался в файле index.html и выяснил, что если я добавляю к коду:

    <script src="js/jquery1.9.1.js"></script>    <script src="js/jquery.bxslider.min.js"></script>	<script src="fancybox/jquery.fancybox.pack8cbb.js?v=2.1.5"></script>	<script src="js/jquery.placeholder.js"></script>	<script src="js/jquery.maskedinput.js"></script>	<script src="js/timer.html"></script>	<script src="js/main.js"></script>
</script>    <script src="js/jquery1.9.1.js"></script>    <script src="js/jquery.bxslider.min.js"></script>	<script src="fancybox/jquery.fancybox.pack8cbb.js?v=2.1.5"></script>	<script src="js/jquery.placeholder.js"></script>	<script src="js/jquery.maskedinput.js"></script>	<script src="js/timer.html"></script>	<script src="js/main.js"></script>function(){            });</script>

То форма работает отлично, но перестает работает таймер обратного отсчета и слайдер в шапки сайта...Вот, что нарыл...надо будет еще покопаться...

Edited by bev11321
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy