Хотите узнать что собой представляет SSL-сертификат? Читайте на dimox.name.
Вернуться   SEO форум - оптимизация и продвижение сайтов > Web разработки > Программирование

Важная информация
Программирование - PHP, MySQL, JavaScript, CSS, HTML верстка и т.д.

Ответ
 
Опции темы Оценить тему Опции просмотра
Старый 07.06.2016, 11:10   #1
 
Аватар для Digistive
 
Сообщений: 2
FR (активность): 59

Доп. информация
По умолчанию Автор темы Как сделать появление всплывающего окна после отправки формы?

Код:
<table width="90%" border=0 align="center" class="td_border">
<tr>
<td bgcolor='#2275AD'><p align="center" class="title">Для отправки сообщения автору сайта используйте следующую форму:</td>
</tr>
<tr align="center" valign="top">
<tr>
<td bgcolor='#F6F6F6'>
<form action='send.php' method='POST' name='form' target='_blank'>
<p style='font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;'>Ваше имя:<br>
<input name='name' type='text' size='30'></p>
<p style='font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;'>Ваш e-mail:<br>
<input name='email' type='text' size='30'></p>
<p style='font-family: Verdana; font-size: 8pt; color: #000000; font-weight: bold;'>Ваше сообщение:<br>
<textarea name='mess' rows='5' cols='50'></textarea>
<p><input name='submit' type='submit' style='font-family: Verdana; font-size: 8pt; color: #ffffff; background-color: #6699cc; font-weight: bold;' value='Отправить сообщение'>
<input name='Reset' type='reset' style='font-family: Verdana; font-size: 8pt; color: #ffffff; background-color: #6699cc; font-weight: bold;' value='Очистить форму'></p>
</form>
</td>
</tr>
</table>


<?php

$name = $_POST['name'];
$email = $_POST['email'];
$mess = $_POST['mess'];

$REMOTE_ADDR = $_POST['REMOTE_ADDR'];

if (isset ($name))
{
$name = substr($name,0,20); //Не может быть более 20 символов
if (empty($name))
{
echo "<center><b>Не указано имя !!!<p>";
echo "<a href=mail.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else 
{
$name = "не указано";
}

if (isset ($email))
{
$email = substr($email,0,20); //Не может быть более 20 символов
if (empty($email))
{
echo "<center><b>Не указан e-mail !!!<p>";
echo "<a href=mail.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else 
{
$email = "не указано";
}

if (isset ($mess))
{
$mess = substr($mess,0,1000); //Не может быть более 1000 символов
if (empty($mess))
{
echo "<center><b>Сообщение не написано !!!<p>";
echo "<a href=mail.php>Вернуться и правильно заполнить форму.</a>";
exit;
}
}
else 
{
$mess = "не указано";
}

$i = "не указано";
if ($name == $i AND $email == $i AND $mess == $i)
{
echo "Внимание! Произошла ошибка! Вы не заполнили поля сообщения!";
exit;
}

$to = "ваш@mail.ru";
$subject = "Сообщение с сайта";
$message = "Имя пославшего письмо: $name .\nЭлектронный адрес: $email\nСообщение: $mess .\nIP-адрес: $_SERVER[REMOTE_ADDR]";
mail ($to,$subject,$message,"Content-type:text/plain; charset = utf-8") or print "Не могу отправить письмо !!!";
echo "<center><b>Спасибо за отправку Вашего сообщения. <br><br> Для меня это очень важно! <br><br> В ближайшее время Вы обязательно получите ответ.";
exit;
?>
Как модернизировать код, чтобы после отправки сообщения появлялось всплывающее окно типа "Спасибо ваше сообщение отправлено", потом через пару секунд окно исчезло, а форма отчистилась?
Digistive вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 07.06.2016, 18:07   #2
 
Аватар для Hodge
 
Сообщений: 685
FR (активность): 14,957

Доп. информация
По умолчанию

Добавляем в <head> JQuery:

Код:
<script src="https://code.jquery.com/jquery-2.2.4.min.js"></script>
Добавляем JS-код (переделав его под себя):

Код:
<script type="text/javascript"> 
function sendForm() 
{ 
if (форма отправлена) {
$("input").val(""); // чистим инпуты
$(".window").show(); // показываем окно
setTimeout("someFunction()", 2000); // вызываем someFunction() с таймером в 2 секунды
}
} 

function someFunction() 
{ 
$(".window").hide(); // скрываем окно
} 
</script>
Вешаем на кнопку формы событие onckick:

Код:
<input type="button" value="" onClick="sendForm()" />
Делаем само окно (class="window"), скрываем его в css.
Hodge вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 07.06.2016, 19:16   #3
 
Аватар для cthulchu
 
Сообщений: 3,659
FR (активность): 106,746

Доп. информация
По умолчанию

@-Hodge, а разве таймер и онклик не остановит отправку формы? Мне кажется, они выполнятся перед дефолтным онкликом, если не вместо его. По моему, лучше по онклику аяксом сабмитить форму, а потом уже попап показывать если саксес.

Стандартный функционал сабмита же должен перезагрузить страницу.
Hodge: сообщение полезно
cthulchu вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
Старый 07.06.2016, 21:18   #4
 
Аватар для Hodge
 
Сообщений: 685
FR (активность): 14,957

Доп. информация
По умолчанию

Цитата:
Сообщение от cthulchu Посмотреть сообщение
Стандартный функционал сабмита же должен перезагрузить страницу.
@cthulchu, да-да, аякс нужен.

Вот JS с Ajax (тоже под себя нужно сделать, добавить валидатор формы и проверку ответа с hostname/ajaxtest.php):

Код:
<script type="text/javascript"> 
function sendForm() 
{ 
var inputName1 = $("input[name=inputName1]").val();

// На сервер будет отправлен запрос страницы http://hostname/ajaxtest.php и указаны два параметра. 
// После получения ответа от сервера будет вызвана функция onAjaxSuccess, которая выведет 
// на экран сообщение с данными, присланными сервером.
$.post(
  "/ajaxtest.php",
  {
    param1: inputName1,
    param2: ...
  },
  onAjaxSuccess
);
}

function someFunction() 
{ 
$(".window").hide(); // скрываем окно
} 

function onAjaxSuccess(data)
{
  // Здесь мы получаем данные, отправленные сервером и выводим их на экран.
  //alert(data);
$("input").val(""); // чистим инпуты
$(".window").show(); // показываем окно
setTimeout("someFunction()", 2000); // вызываем someFunction() с таймером в 2 секунды
}
</script>
Hodge вне форума  
Ответить с цитированием Сказать Плохо за это бесполезное сообщение Быстрый ответ на это сообщение
"Спасибо" от:
cthulchu (07.06.2016)
Ответ

Метки
код

Быстрый ответ
Ваше имя пользователя: Регистрация. Для входа нажмите здесь
Случайный вопрос

Сообщение:
Опции


Опции темы
Опции просмотра Оценка этой теме
Оценка этой теме:

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[ Вопрос ] Редирект. После авторизации выкидывает на ненужные страницы. Как сделать редирект? mrtorrent Индексация сайта 1 27.11.2014 10:41
[ Личный опыт ] Про поехавших клиентов, появление гс и возможное будущее вебмастеров boris_b Разработка сайтов 14 03.06.2014 15:40
Что сделать с описанием и фото после парсинга чтобы ПС не ругался? Art MC Оптимизация страниц сайта 9 26.11.2013 00:09
Нужен надежный скрипт формы отправки писем!? Steinadler Разработка сайтов 44 12.02.2013 15:37
Письма с формы отправки не приходят на ...@mail.ru bazan Программирование 5 23.04.2011 14:28

Текущее время: 06:44. Часовой пояс GMT +3.