JAVASCRIPT 如何以 ajax post 的格式创建多维数组

JAVASCRIPT How to create Multi-dimensional array in format for ajax post

提问人:Europeuser 提问时间:3/28/2023 最后编辑:Europeuser 更新时间:3/28/2023 访问量:46

问:

我需要这个 js 代码的帮助,该代码需要创建一个格式为多维 js 数组,稍后通过 ajax 发送。 从下表中,我需要收集每个客户所选服务的以下信息: 客户端 ID 作为数组的键,该数组将保存另一个具有选定service_id、client_price trener_bonus的数组 请注意,每个玩家的服务表可能超过 1 个。例如,客户可以命令使用 2 个 trener 一起训练,因此对于该玩家来说,将有第二个表,其中包含玩家可以选择的服务,这就是为什么每个播放器发球数组必须具有带有键trener_id的子数组,该子数组将保存每个 trener 的选定服务。

enter image description here

我的代码是:

var treners_services_list= new Array();

$(".player_row").each(function(){
var player_id = $(this).attr('data-client');
if(!treners_services_list['p'+player_id]) treners_services_list['p'+player_id] = [];

$('#treners_services_table_'+player_id).find('.service_check_group:checked').each(function(){
var sid = $(this).val();
var trener_id = $(this).attr('data-trener');

if(!treners_services_list['p'+player_id]['t'+trener_id]){
treners_services_list['p'+player_id]['t'+trener_id] = [];
}

  treners_services_list['p'+player_id]['t'+trener_id].push({
    service_id: sid,
    client_price: $('#trener_client_price_'+sid).val(),
    trener_bonus: $('#trener_bonus_price_'+sid).val()

    });
    })

})
  console.log(treners_services_list);

我已经准备好了 jsfiddle,但是我正在生成的数组不会通过 ajax 发送。我尝试使用这个转换它:

var myArray = $.makeArray(treners_services_list);

但 Ajax 仍然不接受它。

您能否帮助我以正确的格式生成数组,但要保留上面所需的全部信息,谢谢

小提琴中的 js 代码生成了这个数组,该数组不被 ajax 接受。我尝试使用 JSON.stringify() 转换它,但它变为空:enter image description here

JavaScript 数组 AJAX

评论

0赞 Steve Tomlin 3/28/2023
JSON.stringify()

答:

0赞 Europeuser 3/28/2023 #1

问题是我设置在顶部:

if(!treners_services_list['p'+player_id]) treners_services_list['p'+player_id] = [];

而不是:

if(!treners_services_list['p'+player_id]) treners_services_list['p'+player_id] = {};

感谢您的帮助!