首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP:打印文本而不必转到页面顶部

PHP:打印文本而不必转到页面顶部
EN

Stack Overflow用户
提问于 2013-10-06 23:48:30
回答 2查看 89关注 0票数 0

我有一个发送邮件的功能。这就是了。正如你在结尾看到的,如果所有的检查都是正确的,它会回响一封“发送的电子邮件!”如果用户不编译一些输入,就会出现错误。

代码语言:javascript
复制
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(),但我不知道怎么用.

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-06 23:55:14

我们需要看看你的jQuery代码。但是,尽管如此,如果您将表单提交到显示表单的同一页,并且提交不异步处理,则该页可能会重新加载,这将导致它出现“跳转”到顶部。我会编写一个Ajax方法,通过POST处理表单提交。您可以使用event.preventDefault();来防止页面在提交表单时“跳转”。

基于OP答复的更新:

  1. 暂时删除显示的代码并隐藏联系人表单。
  2. 将jQuery验证插件:http://bassistance.de/jquery-plugins/jquery-plugin-validation实现为表单处理程序: 将对此插件的调用绑定到提交按钮上的单击事件。 使用event.preventDefault();停止表单提交。 成功后,验证插件将调用Ajax方法来发布表单。
  3. 编写一个Ajax方法来发布表单。这个方法应该有两个回调: .done() --如果表单发布成功,则执行 如果出现错误,.fail() --将执行。

在done方法中,可以隐藏表单。失败方法可能会显示错误。

票数 0
EN

Stack Overflow用户

发布于 2013-10-06 23:52:51

试试这个:

代码语言:javascript
复制
$('#form').submit(function(e){
    e.preventDefault();

    //ajax code that send to server side here
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19215302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档