如何Post数组多维角js

How to Post Array multidimensional angular js

本文关键字:js Post 数组 如何      更新时间:2023-09-26

我在angularjs中有一个数组,示例如下:

$scope.order.qty='20';
$scope.order.adress='Bekasi';
$scope.order.city='Bekasi';

这个数组可以用下面的代码发布

$http({
          method  : 'POST',
          url     : '<?php echo base_url(); ?>add_order',
         data    : $scope.order,
          headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
         })

我可以用

得到所有变量
$_POST = json_decode(file_get_contents('php://input'), true);
$_POST['qty'];
$_POST['address'];
$_POST['city'];

但是我很困惑如果数组多维像这样:

$scope.items[1].kode_produk='PR_1';
$scope.items[2].kode_produk='PR_2';
$scope.items[3].kode_produk='PR_3';

如何从多维数组中获取变量?

你可以像这样传递数组:

$http({
      method  : 'POST',
      data    : { items: $scope.items }
      ...
     })

获取数据:

$_POST = json_decode(file_get_contents('php://input'), true);
$items = $_POST['items'];

如果您发送$scope.items:

,您的json将看起来像这样
[
  {
    "kode_produk": "PR_1"
  },
  {
    "kode_produk": "PR_2"
  },
  {
    "kode_produk": "PR_3"
  }
]

$input = json_decode(...)之后生成这个php数组:

array (size=3)
  0 => 
    object(stdClass)[1]
      public 'kode_produk' => string 'PR_1' (length=4)
  1 => 
    object(stdClass)[2]
      public 'kode_produk' => string 'PR_2' (length=4)
  2 => 
    object(stdClass)[3]
      public 'kode_produk' => string 'PR_3' (length=4)

你有一个对象数组,而不是多维数组!

您可以遍历如下项:

foreach($input as $item)
{
    echo $item->kode_produk;
}

是单向的

在JavaScript中发送数据$scope。项,例如:

$http({
          method  : 'POST',
          url     : '<?php echo base_url(); ?>add_order',
         data    : $scope.items,
          headers : {'Content-Type': 'application/x-www-form-urlencoded'} 
         })

和在网站上的PHP代码写:

$_POST = json_decode(file_get_contents('php://input'), true);
var_dump($_POST); die();

并分析数据结构。