2017-01-09 81 views
0

我是PHP和dataLayer的新手,但我有下面的代码,其中包含一个带有PHP代码的dataLayer。我想使用数据层变量将它们映射到Google标记管理器,并且想要使用下面代码中提供的PHP变量。我想从PHP变量填充如下。dataLayer中的PHP变量

名称,价格,类别和数量从PHP变量填充到数据层结构。

此外,它应该获得所有的产品变量,具体取决于页面上代码的加载数量。

此外,还希望transactionTotal被填充,这是各个产品价格的所有价格的总和。

var cartItemMap = new Object(); 
    var cartItem1 = null; 
    var cartItem2 = null; 
    var cartItem3 = null; 
    var cartItem4 = null; 
    var cartItem5 = null; 
    var cartItem6 = null; 
    var cartItem7 = null; 
    var cartItem8 = null; 
    var cartItem9 = null; 
<?php 
    $size = 0; 
    foreach($_SESSION['product'] as $key => $pro){ 
     $size = $size + 1; 
    } 
    $i = 1; 
    foreach($_SESSION['product'] as $key => $pro){ 

     if($size > 9){ 
      $size = $size -1; 
     } 
     else{ 
?> 

dataLayer = [{ 
    'transactionId': Math.floor((Math.random() * 100) + 1), 
    'transactionTotal': 11.99, 
    'transactionTax': 1.29, 
    'transactionShipping': 5, 
    'transactionProducts': [{ 
     'sku': 121212, 
     'name': "Test", 
     'category': "Testing Category", 
     'price': 33, 
     'quantity': 1 
    },{ 
     'sku': 'AA1243544', 
     'name': 'Socks', 
     'category': 'Apparel', 
     'price': 9.99, 
     'quantity': 2 
    }] 
}]; 

if("<?php echo $pro['product_name'] ?>" != ''){ 
    cartItem<?php echo $i ?> = new Object(); 

    cartItem<?php echo $i ?>.productName = "<?php echo $pro['product_name'] ?>"; 
    cartItem<?php echo $i ?>.productPrice = "<?php echo $pro['product_price'] ?>"; 
    cartItem<?php echo $i ?>.productQuantity = <?php echo $pro['product_quantity'] ?>; 
    cartItem<?php echo $i ?>.productCategory = "<?php echo $pro['product_category'] ?>"; 
    cartItemMap[<?php echo $key ?>] = cartItem<?php echo $i ?>; 
} 
<?php 
     $i = $i + 1; 
    } 
} 
?> 

帮助表示赞赏。

+0

如果你发现自己nubering变量名,那么你或许应该使用数组考虑

<script type="text/javascript"> var cartItems = [ <?php foreach($_SESSION['product'] as $key => $pro): ?> { productName: "<?= $pro['product_name']; ?>", productPrice: "<?= $pro['product_price']; ?>", productQuantity: "<?= $pro['product_quantity']; ?>", productCategory: "<?= $pro['product_category']; ?>" }, <?php endforeach; ?> ]; </script> 

这将创建一个数组(cartItems)或收集对象而不是 –

+0

我完全不知道如何做到这一点。请帮忙/解释。 – kishoremcp

+0

您的代码和问题很难遵循。你的“数据层”在哪里,你试图做什么? – nerdlyist

回答

1

你可以尝试这样的:对象(cartItem)

+0

嗨Sepultura, 代码工作谢谢。我现在想要为数组中的每个产品生成一个随机数,并且我希望将事务总数放在数组顶部的一个不同变量(我的意思是不在数组中)以总计总值(product1 Price + product1 Price ...) – kishoremcp

+0

我认为你可以很容易地自己弄清楚,我不是在这里为你写代码对不起。 – Sepultura

+0

没问题。谢谢你的帮助。将自己尝试。 – kishoremcp