【问题标题】:jQuery AJAX data parametersjQuery AJAX 数据参数
【发布时间】:2016-04-10 06:55:48
【问题描述】:

我有 10 个具有相同参数的 AJAX 查询。

$.ajax({
    global: false,
    type: 'POST',
    url: value,
    dataType: 'html',
    data: {
        firstname: $("#firstname").val(),
        lastname: $("#lastname").val(),
        surname: $("#surname").val(),
        age: $("#age").val(),
        ...
        sex: $("#sex").val()
    },
    success: function(result) {
        console.log(result);
    },
    error: function (request, status, error) {
        serviceError();
    }
});

我有76个参数,如何统一这些参数不写10次?

【问题讨论】:

  • 你可以在你的ajax调用之前做。
  • @IsraGab 好的,但是如何。可以给我看看吗?
  • 你想传递一个表单内的所有字段,你可以使用data: $('#form').serialize(); 如果没有,你可以准备一个带有data : $('#form').serialize() + "&par1=1&par2=2&par3=232"形式的所有参数的字符串,只需循环遍历可用的参数和preare一个字符串
  • 参数的 html 代码看起来如何?
  • 字段名称都非常统一,因此您可以在 $.ajax() 调用之前轻松使用单行循环将所有 76 个属性添加到对象。

标签: javascript jquery ajax parameters unify


【解决方案1】:

首先,在 html 中为每个 param 创建一个类 类似:

<input type="text" id="param1" class="params"/>
<input type="text" id="param2" class="params"/>
<input type="text" id="param3" class="params"/>

然后在你的 JS 中:

 var callAjax = function(){    
    data = {};
    for(var i = 0; i < $('.params').length; i++){
        data[$('.params')[i].id] = $('.params')[i].val(); 
    }
    $.ajax({
            global: false,
            type: 'POST',
            url: value,
            dataType: 'html',
            data: data,
            success: function(result) {
                console.log(result);
            },
            error: function (request, status, error) {
                serviceError();
            }
        });
        }

【讨论】:

  • 例如我给他们编号,他们有不同的名字。
  • 好的,我也编辑了我的代码。我不认为你的代码会做我想要的。
  • 所以我不知道你想要什么。
【解决方案2】:

在数组变量中添加你的值,然后传递给数据

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-07-04
    • 1970-01-01
    • 2012-04-05
    • 1970-01-01
    相关资源
    最近更新 更多