无法通过AJAX将数组发送到php?

时间:2019-01-29 13:11:35

标签: javascript php jquery ajax

我遵循了this这个问题,但是无法将数组发送到php却使我总是空着:

JS:

            values = [];
            values['mpsRegnomer'] = $('#mpsRegnomer').val();
            values['mpsMarka'] = $('#mpsMarka').val();
            values['mpsMarkaOther'] = $('#mpsMarkaOther').val();
            values['engineType'] = $('#engineType').val();
            values['seatNumberInput'] = $('#seatNumberInput').val();
            values['carColor'] = $('#carColor').val();
            values['mpsChassiNum'] = $('#mpsChassiNum').val();
            values['mpsModel'] = $('#mpsModel').val();
            values['mpsModelOther'] = $('#mpsModelOther').val();
            values['mpsManufactureDate'] = $('#mpsManufactureDate').val();
            values['mpsfor'] = $('#mpsfor').val();
            values['VehicleType'] = $('#VehicleType').val();
            values['dvigatelInput'] = $('#dvigatelInput').val();
            values['engineMaxPower'] = $('#engineMaxPower').val();
            values['is_automatic'] = $('#is_automatic').val();
            console.log(values);

            $.ajax({
                    type: 'POST',
                    url: 'assets/clients/services/saveDataMPS.php',
                    async: false,
                    dataType: "JSON",
                    data: {"values": JSON.stringify(values)},
                    success:function(response){
                        alert(1);
                    }
            });

console.log(values)告诉我数组没问题。

PHP代码:

<?php

var_dump(json_decode($_POST["values"])); exit; 

它总是返回我为空,也只尝试了var_dump($_POST);相同的结果。我在哪里错了?

console.log(values)的结果:

enter image description here

1 个答案:

答案 0 :(得分:4)

您将values定义为一个数组,因此在对它进行字符串化时会得到一个空数组。将其定义为类似values = {};的对象,它将起作用。

您不要在javascript中使用关联数组,因为

  

如果您使用命名索引,JavaScript会将数组重新定义为   标准对象。之后,一些数组方法和属性将   产生不正确的结果。

这就是为什么您需要在开始时将其定义为对象。

values = {};
values['mpsRegnomer'] = $('#mpsRegnomer').val();
values['mpsMarka'] = $('#mpsMarka').val();
values['mpsMarkaOther'] = $('#mpsMarkaOther').val();

这是正在工作的JSFiddle。 http://jsfiddle.net/pk97fe0b/