php - JS AJAX发送多个数据数组

标签 php javascript jquery ajax knockout.js

我正在尝试在我的 ajax 保存函数中发送多个数据数组。

我可以像 data:hardwarePayload 一样单独处理每个数组,它会起作用。如果我这样做 {hardware: hardwarePayload, service:servicePayload} 我会得到非常奇怪的 JSON 输出。看起来像:

hardware=%5B%7B%22hardwareName%22%3A%221%22%2C%22hardwareQuantity%22%3A%22%22%2C%22hardwareBYOD%22%3A%22%22%7D%5D&service=%5B%7B%22serviceName%22%3A%223%22%2C%22serviceQuantity%22%3A%22%22%7D%5D

我确实需要两个阵列,一个硬件和一项服务,这样我就可以单独获取每个阵列。

我的代码如下所示..

self.save = function (form) {
    var hardwareModel = [];
    var serviceModel = [];
    ko.utils.arrayForEach(self.services(), function (service) {
        serviceModel.push(ko.toJS(service));
    });
    ko.utils.arrayForEach(self.hardwares(), function (hardware) {
        hardwareModel.push(ko.toJS(hardware));
    }); 
  //allModel.push({accountId: ko.toJS(account)});
    var hardwarePayload = JSON.stringify(hardwareModel);
    var servicePayload = JSON.stringify(serviceModel);
  //alert(JSON.stringify(serviceModel) +JSON.stringify(allModel));
    $.ajax({
        url: '/orders/add',
        type: 'post',
        data: {hardware: hardwarePayload, service:servicePayload}, //            data:hardwarePayload,
        contentType: 'application/json',
        success: function (result) {
            alert(result);
        }
    });
};

最佳答案

你应该尝试一下

var hardwarePayload = hardwareModel;
var servicePayload = serviceModel;

var postData = {'hardware': hardwarePayload, 'service':servicePayload};

var postData = JSON.stringify(postData);

alert(postData);

$.ajax({
    url: '/orders/add',
    type: 'post',
    data: postData,
    contentType: 'application/json',
    success: function (result) {
        alert(result);
    }
});

关于php - JS AJAX发送多个数据数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15535826/

相关文章:

php - 在 PHPUnit 中的内存 SQLITE 数据库中模拟数据

javascript - 如何添加不可移动的页脚信用

php - 是否可以在第三个 Div 之后放置第二个生成的 Div

javascript - 如何使用 File 对象填充 FilePond

javascript - 如何像触摸光标一样查看图像?

javascript - 使用 jQuery 的功能 promise

javascript - 如何选择具有特定模式 id 的所有文本区域

php - 如何获取html页面源中未显示的内容

Jquery 选择同时具有 Class1 和 Class2 的所有元素

javascript - args.join (""的替代方案)?