不正确的Javascript对象语法

时间:2018-09-18 14:10:35

标签: javascript php arrays

我正在尝试为Google Analytics(分析)创建JavaScript数组。

下面是我的代码。我认为语法不正确。语法的第一部分是可以的,即购买,但是当我尝试在此对象中创建数组时,我认为我遇到了问题。

i.e:      'products': []

我不确定如何向该对象添加数组。

window.dataLayer = window.dataLayer || [];
dataLayer.push({
 'ecommerce': {
    'purchase': {
    'actionField': {
            'id': '<?php echo $order->getId()?>',                         // Transaction ID. Required for purchases and refunds.
            'affiliation': '<?php echo $order->getAffiliation() ?>',
            'revenue': '<?php echo $orderGrandTotal?>',                     // Total transaction value (incl. tax and shipping)
            'tax': '<?php echo $orderTax?>',
            'shipping': '<?php echo $orderShippingTotal?>',
            'coupon': '<?php echo $order->getCouponCode() ?>'
        },

        'products': [
            <?php foreach($orderItems as $item): ?>
        <?php $intCtr++;?>
        <?php if($item->getParentItemId()) continue;?>
          {                            

            'name': '<?php echo $this->jsQuoteEscape($item->getName()) ?>',     // Name or ID is required.

            'id': '<?php echo $item->getSku() ?>',

            'price': '<?php echo ($helper->sendBaseData()==true ? $item->getBasePrice() : $item->getPrice()) ?>',
            'brand': '<?php echo $helper->getBrand($item->getProduct()) ?>',

            'category': '<?php echo $helper->getQuoteCategoryName($item) ?>',

            'quantity': <?php echo $item->getQtyOrdered()?>

            <?php if ($intCtr==count($orderItems)):?>
                        <?php endif;?>  
                }            
                <?php endforeach;?>            
        ]
    },

   }

});

1 个答案:

答案 0 :(得分:0)

我只会用PHP做很多事情。

$array = [
    'ecommerce' => [
        'purchase' => [
            'id'=> $order->getId(),
            // etc etc
        ],
    ],
];

$json = json_encode($array);

然后只需在Java语言中一口气回声!

{"ecommerce":{"purchase":{"id":12345}}}