微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 从JQuery AJAX向PHP发送multidimentional数组

我想从JQuery AJAX向PHP发送一个多维数组,但它正在这样的PHP中接收

Array
(
[recordid] => 38
[locations] => [object Object],[object Object]
)

我一定是在做一些愚蠢的错误.这是代码.
它从表中获取记录并发送给PHP

$(document).on('click','.saveNow',function(){
    recordid = $(this).data('id');

    locations = [];

    $('.selectrec').each(function () {
        parent = $(this).parent().parent();

        name    = parent.find('td').eq(5);
        address = parent.find('td').eq(6);
        lat     = parent.find('td').eq(1);
        lng     = parent.find('td').eq(2);

        row = [name,address,lat,lng];

        locations.push(row);
    });

    locations = locations.toString();
    $.ajax({
        type: "POST",
        url:'/record/saveSearchedLocations',
        data: { recordid: recordid,locations:locations },
        dataType: 'json',
        success: function (data) {
            console.log(data);
        },
        error:function(data){
          alert("something went wrong, please try again.");
        }
    });

});

这是我接收数据的PHP函数

function saveSearchedLocations(){
    print_r($_POST);
}

解决方法:

使用JSON.stringify()而不是toString(),如下所示:

将您的AJAX调用更改为:

$(document).on('click','.saveNow',function(){
    recordid = $(this).data('id');

    locations = [];

    $('.selectrec').each(function () {
        parent = $(this).parent().parent();

        name    = parent.find('td').eq(5);
        address = parent.find('td').eq(6);
        lat     = parent.find('td').eq(1);
        lng     = parent.find('td').eq(2);

        row = [name,address,lat,lng];

        locations.push(row);
    });

    ajaxData = { recordid : recordid,locations : locations }
    $.ajax({
        type: "POST",
        url:'/record/saveSearchedLocations',
        data: JSON.stringify(ajaxData),
        dataType: 'json',
        success: function (data) {
            console.log(data);
        },
        error:function(data){
          alert("something went wrong, please try again.");
        }
    });

});

JSON.stringify()将您的数组转换为实际的json字符串,而不是使用逗号作为分隔符连接数组(一个级别)的Array.prototype.toString().

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐