Всплывающее окно с подтверждением отправки сообщения с помощью PHP и JS - PullRequest
2 голосов
/ 17 марта 2012

Я только начал работать с PHP и у меня довольно простая проблема, которую я не могу понять. Я установил базовый PHP-скрипт, который будет отправлять мне содержимое со страницы контактов моих сайтов. Сценарий в порядке - и валидатор тоже. Теперь я пытаюсь получить простое всплывающее окно (похожее на функцию оповещения в javascript). Вот моя попытка:

if ($valid) {
        //*isUTF8($subject);
        //*isUTF8($formcontent);
        sendMail();
        $body = $successMarkup . $backMarkup;
        $title = "Form sent";
        @header("location:formsent.php");
    } else {
        $body = $errorMarkup . $errorMarkupEnd . $backMarkup;
        $title = "Form errors";
    }

Файл formsent.php, к которому я обращаюсь, включает только базовую разметку html, а также предупреждение javascript, которое выполняется, как только вы открываете страницу:

<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Contact Success</title>
</head>

<body>
<script language="Javascript">
<!--
alert ("Thank you for your message! I will come back to you as soon as possible!")
//-->
</script>
</body>
</html>

Вот мой вопрос: После того, как я отправляю заполненный контактный лист с помощью кнопки отправки, я получаю всплывающее окно с сообщением, показанным выше - НО, чтобы сделать это, он покидает фактическую страницу, на которой я сейчас, и показывает мне только белый экран.

Как реализовать всплывающее сообщение, не покидая страницы, на которой я сейчас нахожусь?

Ответы [ 2 ]

1 голос
/ 17 марта 2012

Попробуйте использовать это: http://jquery.malsup.com/form/ с jQuery для упрощения отправки формы Ajax. Примеров, показанных на этой странице, вполне достаточно, чтобы реализовать ваш тип истории. просто положи:

<script>
$(document).ready(function(){ 
  $('form#form_id').ajaxForm(
     function(data){ 
       alert(data); 
     }
    )
})
</script>

И поэтому все, что вам нужно сделать в вашем сценарии sendmail, это отобразить нужное сообщение, перенаправление не требуется.

0 голосов
/ 17 марта 2012
Заголовок

("Location: ") приводит к правильному перенаправлению. Вам необходимо использовать Ajax здесь для отправки данных (когда пользователь отправляет их), получения содержимого всплывающего окна, а затем его отображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...