2017-01-09 7 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

의를 또는 컬렉션 개체 대신 –

+0

나는 그것을하는 방법에 대해 전혀 모른다. 도와주세요/설명하십시오. – kishoremcp

+0

코드와 문제를 따라하기가 어렵습니다. 이 "데이터 영역"은 어디에 있으며 무엇을 시도하고 있습니까? – nerdlyist

답변

1

이 같은 시도 할 수 있습니다 : 이것은 배열 (CartItems의)을 생성

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

당신이 변수 이름을 nubering 자신을 발견한다면, 당신은 아마 배열을 사용하여 고려되어야한다 객체 (cartItem)

+0

안녕 Sepultura, 코드가 작동 중입니다. 감사합니다. 이제 배열의 각 제품에 대해 임의의 숫자를 생성하고 또한 합계 값을 합산하기 위해 배열의 맨 위에있는 다른 변수에 트랜잭션 합계를 입력하고 싶습니다. + product1 Price ...) – kishoremcp

+0

혼자서 쉽게 알아낼 수 있다고 생각합니다. 유감스럽게도 코드를 작성하지 않았습니다. – Sepultura

+0

문제 없음. 당신의 도움을 주셔서 감사합니다. 직접 해보겠습니다. – kishoremcp