使用 ajax 发送多维数组

Sending a multidimensional array with ajax

提问人:Wahyu Sedana 提问时间:12/26/2022 最后编辑:LomefinWahyu Sedana 更新时间:12/27/2022 访问量:47

问:

我在客户端有多维数组,当我将该数组发送到PHP服务器时,该数组以字符串形式接收。

我的代码是这样的

 let data_barang = [];
 var nama_barang = $("#nama_barang_add").val();
 var id_barang = $("#nama_barang_add").data("id_barang");
 var perkiraan = $("#nama_barang_add").data("perkiraan");

 var qty = $("#qty_add").val();
 var satuan = $("#satuan_add").val();

 data_barang.push([nama_barang, qty, satuan, id_barang, perkiraan]);

 $.ajax({
    url: '<?= base_url("Admin/Pengadaan/tambahSPB") ?>',
    type: 'POST',
    dataType: 'json',
    data: {
        id_rab: id_rab,
        tgl_order: tgl_order,
        id_supplier: id_supplier,
        kode_supplier: kode_supplier,
        alamat_supplier: alamat_supplier,
        nama_supplier: nama_supplier,
        provinsi_supplier: provinsi_supplier,
        data_barang: data_barang // data barang is multidimensional array
  },
  success: function(data) {
    alert(data.data_barang);
  });

服务器端代码:

 $data_barang[] = $this->request->getPost("data_barang");
 $dataStatus = [
            "message" => $message,
            "detail" => $data_detail,
            "data_barang" => $data_barang
        ];

 echo json_encode($dataStatus);

我尝试在我使用的客户端和服务器端使用 ,但它不起作用json.stringifiyjson_decode

PHP AJAX 多维数组 服务器端

评论

0赞 Chris Haas 12/26/2022
“但不是工作”——你怎么知道?启用完整错误报告后,是否出现异常?另外,意思是“将其附加到数组中”,对吗?$data_barang[] = $this->request…

答:

1赞 Danz 12/26/2022 #1

使用 JSON.stringify 将数组转换为字符串

data: {
  id_rab: id_rab,
  tgl_order: tgl_order,
  id_supplier: id_supplier,
  kode_supplier: kode_supplier,
  alamat_supplier: alamat_supplier,
  nama_supplier: nama_supplier,
  provinsi_supplier: provinsi_supplier,
  data_barang: JSON.stringify(data_barang) // data barang is multidimensional array
}

你可以用

$data =  json_decode($_POST['data_barang']);
print_r($data);