2017-01-09 12 views
0

私はPHPとdataLayerを初めて使用していますが、私は以下のコードを持っています。これにはPHPコードのdataLayerが含まれています。 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

は、その後、あなたはおそらく配列を使用して検討する必要があります作成

<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> 

を代わりに –

+0

私はそれを行う方法については全く知りません。助けてください/説明してください。 – kishoremcp

+0

あなたのコードと問題は理解するのが難しいです。あなたの "データレイヤー"はどこにありますか?何をしようとしていますか? – nerdlyist

答えて

1

あなたはこのような何かを試みることができる:これは、あなた自身が変数名をnubering見つけた場合はオブジェクトの配列(cartItems)(cartItem)

+0

こんにちはSepultura、 コードは動作していますありがとうございます。私は今、配列内の各製品の乱数を生成したい、また、私は総合計値を合計するために、配列の上に別の変数にトランザクションの合計を(私は配列内ではない)したい(product1 Price + product1 Price ...) – kishoremcp

+0

あなたは自分でそれを簡単に理解できると思いますが、私はコードを書いて申し訳ありません。 – Sepultura

+0

問題ありません。ご協力いただきありがとうございます。それを自分で試してみる。 – kishoremcp