0

我有一个联系表单,该表单提交到包含以下内容的 php 页面:

<?php 
$to = 'emailtosendto';
$subject = 'New message from contact form';
$name = $_POST['fullname'];
$mail = $_POST['email'];
$company = $_POST['company']; 
$phone = $_POST['phone']; 
$comment = $_POST['comment'];
$message = $_POST['message'];   
$body = 'Mr/Mrs '.$name.' wishes to contact us.
He\'s from a company called '.$company.'.
You can email him back at '.$mail.', or call him on '.$phone.'.
He was sneaky and found us through '.$comment.'.
He would like to say,
'.$message.'';
ini_set('sendmail_from', '$mail');
mail($to, $subject, $body);
header('location:./?sent');
?>

我现在已经将表单更改为一个很好的实时验证的 jQuery 表单,你可以在下面看到它的小提琴。

http://jsfiddle.net/swift29/6UC7m/

我在想如何更改任何此代码以仍然执行相同的功能,但使其出现一个弹出窗口,确认消息已使用 jQuery 发送,然后淡出并重置表单

在此先感谢,斯威夫特

4

2 回答 2

1

您可以使用 AJAX 而不是提交。这样你就可以在完成后得到一个弹出窗口。

例子:

$.ajax(
    url:  "urlofscript.php",
    data: {
              fullname: variableContainingFullname, // i.e. var variableContainingFullname = $("#fullname").var();
              email:    variableContainingEmail,
              // etc, all the php variables in POST
          },
    type: "POST",
    success: function(result)
    { 
        alert("DONE"); 
    }
于 2012-08-31T13:35:49.323 回答
0

您正在寻找 jQuery 的ajax()函数。

AJAX 将通过 Javascript 发送 POST 查询。这意味着您不必刷新页面,它将自动发送,并且脚本(mailer.php)将在新实例(不是用户当前使用的浏览器窗口)中调用 - 它也被称为“异步”或“背景”,即它不会中断用户正在做的事情(简而言之)。

AJAX 很容易理解,基本上它就像 javascript 发送表单本身,而不是用户执行它。

ajax()jquery 函数中有一些回调函数。

你想要的那个被调用success:,它看起来像这样:

success: function(data){ alert("Your message has been sent!"); }

这将在运行 php 脚本并且 javascript 回调时显示警报。

Hth

于 2012-08-31T13:34:08.447 回答