如何使用变量设置ajax数据$ key和$ value

时间:2016-07-12 15:43:04

标签: javascript php jquery ajax

我试图为搜索查询动态创建ajax数据$ key和$ value。我有三个下拉菜单,当一个更改时我想循环通过每个菜单来获取它们的值并为我的ajax数据创建一个$ key + $值。

到目前为止我已经:

$(document).on("change", ('select'), function(e){ 

    $('select').each(function(i, val){
        value = $(this).val();
        param_name = $(this).attr("name");
        var query = { };
        query['' + param_name + ''] = value;
        console.log(query);
    });

    search(query);
}); 

但是,这当然会创建3个不同的查询,而不是一个组合。

或者有一种方法可以在更改过滤器后简单地添加/更新搜索查询,而不是每次都循环遍历每个过滤器。

1 个答案:

答案 0 :(得分:2)

您需要在循环外声明query对象,以便每个事件只有一个对象

$(document).on("change", ('select'), function(e){ 
    var query = { };
    $('select').each(function(i, val){
        value = $(this).val();
        param_name = $(this).attr("name");      
        query[ param_name] = value;
        console.log(query);
    });

    search(query);
});

更短的版本:

$(document).on("change", ('select'), function(e){ 
    var query = { };
    $('select').each(function(i, val){                 
        query[ this.name] = this.value;            
    });

    search(query);
});