PHP:打印文本而不必转到页面顶部
我有一个发送邮件的功能。给你。正如您在最后看到的,如果所有检查都得到纠正,它会回显“已发送电子邮件!”,如果用户未编译某些输入,则会出现错误PHP:打印文本而不必转到页面顶部,php,ajax,dom,request,Php,Ajax,Dom,Request,我有一个发送邮件的功能。给你。正如您在最后看到的,如果所有检查都得到纠正,它会回显“已发送电子邮件!”,如果用户未编译某些输入,则会出现错误 if(isset($_POST['submit'])) { $name = $_POST['name']; $visitor_email = $_POST['email']; ... BLAHBLAH // Validation if(empty($name)||empty($visitor_email))
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中。当需要显示消息时(如果是一条错误消息,说明某个字段是必填字段或已发送电子邮件),用户将被重定向到页面顶部,切换的div(表单所在的div)将返回到可见性:hidden。
如何在不让用户转到页面顶部的情况下打印消息
似乎我需要使用jQuery.ajax()
,但我不知道如何使用..试试这个:
$('#form').submit(function(e){
e.preventDefault();
//ajax code that send to server side here
})
我们需要查看您的jQuery代码。但是,也就是说,如果您将表单提交到显示表单的同一页面,并且提交没有异步处理,那么该页面可能会重新加载,这将导致它看起来“跳转”到顶部。我将编写一个Ajax方法来处理通过POST提交的表单。您可以使用event.preventDefault();防止提交表单时页面“跳转” 根据OP的回复更新:
A.将对此插件的调用绑定到submit按钮上的click事件。
B.使用event.preventDefault();阻止表单提交。
C.成功后,验证插件将调用Ajax方法发布表单
.done()--在表单成功发布时执行
。fail()--在出现错误时执行。
在done方法中,可以隐藏表单。失败方法可能会显示错误
谢谢你的回复!jQuery代码很简单:你能帮我用ajax函数重写按钮吗?我对JS不是很熟悉。我只是根据你的回答更新了我的答案。你可能需要做一些研究和练习一些jQuery教程,但这应该会给你一个坚实的游戏计划。谢谢你的回复!但是,对不起。。我不是专家。。“发送到服务器端的ajax代码”是什么意思?我有一个包含许多
输入
(和相对值=“
”)的表单。然后我有$SOMETHING=$\u POST['SOMETHING'];还有一个函数,将它们放在电子邮件正文中,并调用PHP电子邮件函数。