通过 AJAX 将二维JavaScript数组发送到PHP

x8diyxa7  于 2023-02-28  发布在  Java
关注(0)|答案(1)|浏览(151)

我想通过 AJAX 发送一个2D数组到PHP,然后访问PHP中的内容。我有以下创建2D数组的设置:

var data = [];
data['items1'] = ["item1_1", "item1_2"];
data['items2'] = ["item2_1", "item2_2"];

然后,我通过 AJAX 将此信息发送到PHP,就像这样,工作正常(我得到的情况是“my_php_case”)

jQuery.ajax({
    type: "POST",
    url: ajax_site_url, 
    dataType: 'json',
    data: {
        action: "my_php_case",
        data: data,
    },
    success: function(response) { 
    },
});

现在我想访问PHP端的“items1”,并尝试执行以下操作,但结果为空:

$items1 = $_POST['data']['items1'];

我试过在data上使用json.stringify,然后在PHP端使用json_decode,但仍然不起作用。我只能在搜索时在网上找到更复杂的情况,只是希望这个简单的情况起作用。
如何使用 AJAX 调用发送和访问数据?

kcrjzv8t

kcrjzv8t1#

Javascript中的数组是数字索引的,所以你不能像上面那样添加字符串键。要使用字符串键,请将data更改为Object Literal,然后在发送ajax请求之前使用JSON.stringify

var ajax_site_url=location.href;
var data = {};
    data['items1'] = ["item1_1", "item1_2"];
    data['items2'] = ["item2_1", "item2_2"];
    
console.log( data );

jQuery.ajax({
    type: "POST",
    url: ajax_site_url,
    data: {
        action: "my_php_case",
        data: JSON.stringify( data ),
    },
    success:(res)=>alert('Success:\n'+res),
    error:(err)=>alert('Error:\n'+err)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

或者,在PHP中使用数组意味着您将无法再根据需要使用items1进行访问。
一个二个一个一个

相关问题