我遵循了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)
的结果:
答案 0 :(得分:4)
您将values
定义为一个数组,因此在对它进行字符串化时会得到一个空数组。将其定义为类似values = {};
的对象,它将起作用。
您不要在javascript中使用关联数组,因为
如果您使用命名索引,JavaScript会将数组重新定义为 标准对象。之后,一些数组方法和属性将 产生不正确的结果。
这就是为什么您需要在开始时将其定义为对象。
values = {};
values['mpsRegnomer'] = $('#mpsRegnomer').val();
values['mpsMarka'] = $('#mpsMarka').val();
values['mpsMarkaOther'] = $('#mpsMarkaOther').val();
这是正在工作的JSFiddle。 http://jsfiddle.net/pk97fe0b/