通过 AJAX 解析关联数组

我有以下关联数组,我尝试通过 AJAX 将其发送到服务器。


检查我的控制台,在网络选项卡中,它已发布但未解析任何内容。


数组创建:


   var FiltersArray = [];


    FiltersArray['category'] = this.category.val(); 

    FiltersArray['Type1'] = this.type1.val(); 

    FiltersArray['Type2'] = this.type2.val(); 

关联数组(console.log):


[category: "6", Type1: "998", Type2: "20100100"]


要求:


$.ajax({

    type: POST,

    url: 'something.php',

    data: {

        data: FiltersArray 

    }

}).done(function(data) {

    console.log('Server Response: ' + data);

})

完整代码:


          $(document).ready(function() {

    var filters = {

        category: $("#categoryInp"),

        type1: $("#type1Inp"),

        type2: $("#type2Inp"),

        button: $("#FilterBtn"),


        returnArray: function() {

            var FiltersArray = [];


            FiltersArray['category'] = this.category.val();

            FiltersArray['Type1'] = this.type1.val();

            FiltersArray['Type2'] = this.type2.val();


            return FiltersArray;

        },

        sendRequest: function(type, URL) {

            $.ajax({

                type: type,

                url: URL,

                data: JSON.stringify(this.returnArray()),


                beforeSend: function() {}


            }).done(function(data) {

                console.log('Server Response: ' + data);

            }).fail(function() {

                alert("An error occurred!");

            });

        }

    };


    filters.button.on('click', e => {

        console.log(filters.returnArray());

        filters.sendRequest('POST', 'Modules/Products.order.module.php');

    });


});


梦里花落0921
浏览 160回答 1
1回答

慕斯709654

JavaScript 中没有关联数组这样的东西。有一些对象,它们保存key:value成对的数据。有数组,它们是一种对象,当key名称为整数时提供特殊行为。当您在data.如果你传递一个数组将不会做任何key:value对其中key是不是整数。为此使用普通对象而不是数组。旁白:以大写字母开头的变量名传统上保留用于在 JavaScript 中存储构造函数。不要对其他类型的数据使用该命名约定。var filters = {};filters['category'] = this.category.val(); filters['Type1'] = this.type1.val(); filters['Type2'] = this.type2.val(); 但是,在创建对象时收集所有数据会更容易:var filters = {    category: this.category.val(),    Type1: this.type1.val(),    Type2: this.type2.val()};在旁边data: {    data: FiltersArray }这将创建一个(看似毫无意义的)复杂数据结构,您需要在 PHP 中以$_POST['data']['category'].你可能只想:data: filters在旁边data: JSON.stringify(this.returnArray()),这将发送 JSON 而不是表单编码数据。如果你这样做,那么你还需要:设置contentType请求以指示您正在发送 JSON在 PHP 中显式解析 JSON所以你可能不想这样做。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript