";消息发送”;PHP和JS的确认弹出窗口


"Message send" confirmation popup with PHP and JS

我刚开始使用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>

以下是我的问题:在我通过发送按钮发送填写好的联系单后,我会收到一个弹出窗口,上面显示了信息——但这样做会留下我所在的实际页面,只显示一个白色屏幕。

如何在不离开我所在页面的情况下实现弹出消息

试着使用这个:http://jquery.malsup.com/form/使用jQuery使Ajax表单提交变得简单。该页面上显示的示例足以实现您的故事类型。刚放:

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

因此,您在sendmail脚本中需要做的一切都是回显所需的消息,而不需要重定向。

header("Location:<url>")会导致正确的重定向。您需要在这里使用Ajax来发送数据(当用户提交数据时),接收弹出框的内容,然后显示它。