Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php jquery ajax表单提交验证,然后继续表单提交_Php_Jquery_Ajax_Forms - Fatal编程技术网

Php jquery ajax表单提交验证,然后继续表单提交

Php jquery ajax表单提交验证,然后继续表单提交,php,jquery,ajax,forms,Php,Jquery,Ajax,Forms,这就是我要做的 捕获我的表单提交并将其发布到我的ajax处理以进行表单验证(显然不需要重新加载页面) 然后,如果ajax服务器端没有返回错误数组(下面代码中的数据),则继续实际的表单提交。代码段底部的“return false”应该可以防止jquery的默认行为(即提交表单) 如果我们没有得到任何错误,我已经尝试了返回true,但这不起作用 有什么建议吗 以下是我到目前为止得到的信息: $('.submit').click(function(e) { $.ajax({ t

这就是我要做的

捕获我的表单提交并将其发布到我的ajax处理以进行表单验证(显然不需要重新加载页面)

然后,如果ajax服务器端没有返回错误数组(下面代码中的数据),则继续实际的表单提交。代码段底部的“return false”应该可以防止jquery的默认行为(即提交表单)

如果我们没有得到任何错误,我已经尝试了
返回true
,但这不起作用

有什么建议吗

以下是我到目前为止得到的信息:

$('.submit').click(function(e) {
    $.ajax({
        type: "POST",
        url: "/processform_ajax",
        data: $(':input').serializeArray(),
        dataType: "json",
        success: function(data) {
            if (data != '') {
                $("#response span").html("");
                $('.highlightbox').removeClass('highlightbox');
            } else {
                $('#myform').submit();
            }
        },
        error: function(error, txt) {
            alert("Error: " + error.status);
        }
    });
    return false;
});

我用两种不同的方式来处理这个问题:

首先,使用奇妙的方法进行前端验证。在使用PHP和Jquery变得棘手之前,这一步骤可以解决95%的问题

其次,我将表单中的值提交给脚本。让PHP(在我的例子中)对验证进行“思考”。如果不正确,我将以json_编码的字符串形式为success函数返回该信息。我构建一个案例(例如,如果
data.valid==true
),然后显示错误标志。否则,执行成功步骤并在UI中通知用户

我认为在您的案例中,关键是确保返回的数据是json_编码的。仅供参考,我注意到json_encode存在一些非常随机的问题,有时由于方括号的原因导致数据返回函数出现问题,这是完全有效的,但有时会导致无误错误


祝你好运。

我用两种不同的方式处理这个问题:

首先,使用奇妙的方法进行前端验证。在使用PHP和Jquery变得棘手之前,这一步骤可以解决95%的问题

其次,我将表单中的值提交给脚本。让PHP(在我的例子中)对验证进行“思考”。如果不正确,我将以json_编码的字符串形式为success函数返回该信息。我构建一个案例(例如,如果
data.valid==true
),然后显示错误标志。否则,执行成功步骤并在UI中通知用户

我认为在您的案例中,关键是确保返回的数据是json_编码的。仅供参考,我注意到json_encode存在一些非常随机的问题,有时由于方括号的原因导致数据返回函数出现问题,这是完全有效的,但有时会导致无误错误


祝你好运。

你的HTML/表单是什么样子的?在processform\u ajax上它返回什么?你的HTML/表单是什么样子的?在processform\u ajax上它返回什么?谢谢。我已经解决了所有这些问题,但是您的回答让我发现问题在于我处理JSON响应的方式。基本上,我认为JS抛出了一个错误,因为在AJAX返回时,如果一切正常,我没有返回数据数组,这导致JS在“data”未定义时出现“if”语句问题,因此$(“#myform”).submit从未执行。无错误时设置data.valid==true修复了该问题。我希望这是有道理的:)谢谢。我已经解决了所有这些问题,但是您的回答让我发现问题在于我处理JSON响应的方式。基本上,我认为JS抛出了一个错误,因为在AJAX返回时,如果一切正常,我没有返回数据数组,这导致JS在“data”未定义时出现“if”语句问题,因此$(“#myform”).submit从未执行。无错误时设置data.valid==true修复了该问题。我希望这是有道理的:)