Javascript JS/JQuery/PHP-如何在表单验证失败时回显错误,并在成功时跳转到div?

Javascript JS/JQuery/PHP-如何在表单验证失败时回显错误,并在成功时跳转到div?,javascript,php,jquery,html,css,Javascript,Php,Jquery,Html,Css,我有一个固定位置表单,可以滚动到文档上,并在页面上的任何位置填写。如果他们未能正确填写表格,则错误当前会回荡到表格上,这是该方面的预期设计。我目前不知道如何做,如果表单已完成且$errors[]为空,则使用jQueryscrollTop()跳到底部 有人能帮我解决这个问题吗?目前涉及的javascript是: $("#A_FORM_submit_button").click(function() { $("#FORM_A").submit( function () { $

我有一个固定位置表单,可以滚动到文档上,并在页面上的任何位置填写。如果他们未能正确填写表格,则错误当前会回荡到表格上,这是该方面的预期设计。我目前不知道如何做,如果表单已完成且
$errors[]
为空,则使用jQuery
scrollTop()
跳到底部

有人能帮我解决这个问题吗?目前涉及的javascript是:

$("#A_FORM_submit_button").click(function() {
    $("#FORM_A").submit( function () {    
    $.post(
        'ajax/FORM_A_processing.php',
         $(this).serialize(),
         function(data){
             $("#A_errors_").html(data);
         }
    );
    return false;   
    }); 
});
所涉及的PHP非常简单

if (!empty($errors)){
    // echo errors
} else { // echo success message}  <-- would like to jump to div as well
if(!empty($errors)){
//回波误差

}否则{//echo success message}我可能会在这里跳枪,但我相信你的设计是错误的,这就是你遇到这个问题的原因

处理表单验证的理想方法是通过Javascript验证表单,当用户输入他们的信息时,您会立即显示一些指示符,要求他们更正。只要验证不正确,就不应该接受表单请求或进行任何AJAX调用

如果他们没有成功发送数据,您也应该通过PHP进行验证检查,如果失败,将重定向到表单的原始页面。从那里你可以做任何你想做的错误处理,但理想情况下你会保留他们输入的信息并指出错误的原因(Javascript应该捕捉到这一点,但我猜如果它到达这里,用户可能会关闭JS或者你的验证逻辑可能是错误的)

如果我理解正确的话,您似乎正在使用Javascript进行错误处理(这很好),但通过PHP显示错误。正如Hydra IO所说,不要混淆客户端和服务器端。让他们处理他们需要处理的事情


希望这能有所帮助。

@aug非常清楚地描述了这个场景

在代码中,它被翻译成这样的东西

$('form').submit(function(){

    form_data = $(this).serialize();

    if(!validate(form_data))
    {
        // deal with validation, show error messages

        return false;
    }
    else
    {
        // Submit form, either via Ajax $.post() or by just returning TRUE
    }
});

validate()
功能由您自己决定。

您无法完成您想做的事情。Apache已完成页面服务,无法再次运行PHP。您正在尝试混合服务器端和客户端代码。在你的
.post
之后使用jQuery
.done
。我想我不需要再次运行PHP。是否有方法将值返回给调用此.php页面的javascript函数,然后根据返回值执行一段或另一段代码,在$.post代码中?看看
jquery.post
函数和它的
.done
功能。我在PHP中进行错误检查的原因是服务器请求不会很大,所以效率在这里不是一个很大的因素,其次是(当时)对我来说,在PHP中而不是在JS中将错误回显到div中更容易,但我确信在JS中也是可行的。。。我刚刚有了“JS错误检查->警报->丑陋”的关联,这可能只是一种过于简单化的关联。也就是说,我认为我的主要问题并没有受到影响,因为一旦成功,我仍然需要发送一封电子邮件并跳转到一个部门。是的——如果我不清楚,我确实看到我可以做到。啊,实际上我现在看到了一个潜在的解决方案,尽管如果还有一种方法可以从PHP返回值到jquery$.post调用,我很想了解这是如何实现的。如果这是不可能的,更多的确认也会很好。谢谢大家!