【问题标题】:JQuery validate plugin, ajax submitJQuery 验证插件,ajax 提交
【发布时间】:2015-06-04 10:39:25
【问题描述】:

我在两个字段上使用 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。再一次,如果只提供一个输入,我看不出有问题。我想知道的是是否提供了两个输入,以及如何返回两个响应?

任何建议表示赞赏。

【问题讨论】:

    标签: php jquery ajax jquery-validate


    【解决方案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 请求。

    【讨论】:

      猜你喜欢
      • 2015-07-03
      • 1970-01-01
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-27
      相关资源
      最近更新 更多