JQuery验证插件,ajax submit

时间:2015-06-04 10:39:25

标签: php jquery ajax jquery-validate

我在两个字段上使用JQuery验证。如果验证失败,我会执行所有验证并显示消息。然后我有我的提交处理程序,它使用Ajax

submitHandler: function(form) {
         $.ajax({
            type: $(form).attr('method'),
            url: $(form).attr('action'),
            data: $(form).serialize(),
            dataType : 'json'
        })
        .done(function (response) {
            if (response.success == 'success') {               
                alert('success');                       
            } else {
                alert('fail');
            }
        });
        return false;
    }

我的问题是两个字段都不是必需的,只有一个或另一个(或两者)。我已经解决了这个问题。但是,提交的数据将使用Ajax发送到我的PHP文件。在这个PHP中,我检查了哪些字段有数据,例如。

if (isset($_POST["mobileNumber"] && !empty($_POST["mobileNumber"])){
    var_dump("WORKING");
} 

然后我需要检查Web服务API的输入。如果我单独这样做,那不是问题。但是,如果两个输入都输入到表单中,那么我需要对2个不同的API进行2次API调用(每个输入使用不同的API),然后将两者的响应返回到.done。再一次,如果只提供一个输入,我没有看到问题。我想知道的是,是否提供了两个输入,以及如何返回两个响应?

任何建议表示赞赏。

1 个答案:

答案 0 :(得分:1)

为什么不在一个响应中发回API调用的响应?

$response = array();

if (isset($_POST["mobileNumber"] && !empty($_POST["mobileNumber"])){
    $response['mobileNumberResponse'] = array('success'=>true,'data'=>array());
}

if (isset($_POST["secondParameter"] && !empty($_POST["secondParameter"])){
    $response['secondParameter'] = array('success'=>true,'data'=>array());
}

echo json_encode($response);

或类似的东西。如果这不是一个选项,如果两个参数都存在,则发送两个ajax的请求。