我有一个发送邮件的功能。这就是了。正如你在结尾看到的,如果所有的检查都是正确的,它会回响一封“发送的电子邮件!”如果用户不编译一些输入,就会出现错误。
if(isset($_POST['submit']))
{
$name = $_POST['name'];
$visitor_email = $_POST['email'];
... BLAHBLAH
// Validation
if(empty($name)||empty($visitor_email))
{
$errors .= "\n Field is mandatory. ";
}
if(IsInjected($visitor_email))
{
$errors .= "\n Email format is wrong!";
}
if(empty($errors))
{
// send the email
$to = $your_email;
$subject="My subject";
... BLAH BLAH
$headers = "From: $from \r\n";
mail($to, $subject, $body,$headers);
echo 'Email sent';
}
}电子邮件发送正常。问题是,此表单位于jQuery切换的div中。当需要显示一条消息时(wheter是一条强制字段或已发送电子邮件的错误消息),用户将被重定向到页面的顶部,切换的div (表单所在的div)返回到可见性:隐藏。如何在不让用户进入页面顶部的情况下打印消息?
看来我需要用jQuery.ajax(),但我不知道怎么用.
发布于 2013-10-06 23:55:14
我们需要看看你的jQuery代码。但是,尽管如此,如果您将表单提交到显示表单的同一页,并且提交不异步处理,则该页可能会重新加载,这将导致它出现“跳转”到顶部。我会编写一个Ajax方法,通过POST处理表单提交。您可以使用event.preventDefault();来防止页面在提交表单时“跳转”。
基于OP答复的更新:
在done方法中,可以隐藏表单。失败方法可能会显示错误。
发布于 2013-10-06 23:52:51
试试这个:
$('#form').submit(function(e){
e.preventDefault();
//ajax code that send to server side here
})https://stackoverflow.com/questions/19215302
复制相似问题