За последние 24 часа нас посетили 16056 программистов и 1574 робота. Сейчас ищут 668 программистов ...

Как вывести список через запятую, с помощью цикла?

Тема в разделе "PHP для новичков", создана пользователем Ozymandis, 20 дек 2016.

  1. Ozymandis

    Ozymandis Новичок

    С нами с:
    30 авг 2015
    Сообщения:
    7
    Симпатии:
    0
    Всем Привет!
    Есть скрипт для google remarketing, который должен собирать данные из корзины (список ID товаров, сумма корзины)

    Не могу понять как вывести цикл, '<?=$arBasketItemstag["PRODUCT_ID"]?> выводит только первый один ID, вероятно первый в корзине
    вот наглядная картинка
    [​IMG]

    Сам код корзины, и строка в которой нужно создать цикл:

    Код (Javascript):
    1. ecomm_prodid: '<?=$arBasketItemstag["PRODUCT_ID"]?>',
    PHP:
    1. <script type="text/javascript">
    2.     window.ad_products = [
    3.     <?foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag){?>
    4.         {
    5.             "id": "<?=$arBasketItemstag["PRODUCT_ID"]?>",   // required
    6.             "number": "<?=intval($arBasketItemstag["QUANTITY"])?>"
    7.         },
    8.     <?}?>
    9.         // other products
    10.     ];
    11.  
    12.     window._retag = window._retag || [];
    13.     window._retag.push({code: "14862345ed", level: 3});
    14.     (function () {
    15.         var id = "admitad-retag";
    16.         if (document.getElementById(id)) {return;}
    17.         var s = document.createElement("script");
    18.         s.async = true; s.id = id;
    19.         var r = (new Date).getDate();
    20.         s.src = (document.location.protocol == "https:" ? "https:" : "http:") + "//cdn.lenmit.com/static/js/retag.min.js?r="+r;
    21.         var a = document.getElementsByTagName("script")[0]
    22.         a.parentNode.insertBefore(s, a);
    23.     })()
    24. </script>
    25.  
    26. <script>
    27.     window.APRT_DATA = {
    28.         pageType: 4,                  
    29.         basketProducts: [
    30.             <?foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag3){?>
    31.                 { id: <?=$arBasketItemstag3["PRODUCT_ID"]?>, name: "<?=$arBasketItemstag3["NAME"]?>", price: <?=$arBasketItemstag3["PRICE"]?>, quantity: <?=intval($arBasketItemstag3["QUANTITY"])?> },
    32.             <?}?>
    33.         ]
    34.     };
    35. </script>
    36.  
    37.  
    38. <!----Gooogle-RemarketingTag---->
    39. <script type="text/javascript">
    40. var google_tag_params = {
    41. ecomm_prodid: '<?=$arBasketItemstag["PRODUCT_ID"]?>',
    42. ecomm_pagetype: 'cart',
    43. ecomm_totalvalue: <?=$arResult["allSum_FORMATED"]?>
    44. };
    45. </script>
    46. <!---Gooogle-RemarketingTag---->
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    сначала скопи их в массив, потом implode() его с запятой
     
    denis01 нравится это.
  3. Ozymandis

    Ozymandis Новичок

    С нами с:
    30 авг 2015
    Сообщения:
    7
    Симпатии:
    0
    Спасибо большое, но я к сожалению незнаю совсем как это сделать
     
  4. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    вместо
    Код (Text):
    1. <?foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag){?>
    2.         {
    3.             "id": "<?=$arBasketItemstag["PRODUCT_ID"]?>",   // required
    4.             "number": "<?=intval($arBasketItemstag["QUANTITY"])?>"
    5.         },
    6.     <?}?>
    надо
    PHP:
    1. <?php
    2. $arr = [];
    3. foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag){
    4.   $arr[] = $arBasketItemstag["PRODUCT_ID"];
    5. }
    6. echo implode (', ', $arr);
    7. ?>
    --- Добавлено ---
    в данном случае тебе видимо их надо скопить в массив и сконвертировать в json и вывести в js в переменную запихать.
     
    denis01 нравится это.
  5. Ozymandis

    Ozymandis Новичок

    С нами с:
    30 авг 2015
    Сообщения:
    7
    Симпатии:
    0
    Как это вывести?

    в 1 посте не весь код корзины, вот полный:
    PHP:
    1. <?if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die();?>
    2.  
    3. <?//echo "<pre>";print_r($arBasketItems);echo "</pre>";
    4.  
    5. global $basket_set;
    6. $basket_set = $arParams['BASKET_PHOTO'];?>
    7.            
    8. <input type="hidden" value="" name="BasketOrder"  id="basketOrderButton2">      
    9.  
    10. <?$i=0;
    11.  
    12. foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItems)
    13.     $i = $i + $arBasketItems["QUANTITY"];
    14.  
    15. $a=-1;
    16.  
    17. foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItems):
    18.     $a++;
    19.  
    20.     $test[$a]['id'] .= iconv('cp1251', 'utf-8', $arBasketItems['ID']);
    21.     $test[$a]['name'] .= iconv('cp1251', 'utf-8',$arBasketItems['NAME']);
    22.     $test[$a]['price'] .= iconv('cp1251', 'utf-8',$arBasketItems['PRICE']);
    23.     $test[$a]['type'] .= iconv('cp1251', 'utf-8','Äðóãîå');
    24. endforeach;?>
    25.  
    26. <?//=json_encode($test, JSON_UNESCAPED_UNICODE);?>
    27.  
    28. <script>
    29.     var item =1;
    30.     var arrProducts = new Array();
    31.     arrProducts[0] = { id : '2515', name : '1', price: '65990', type: 'Íîóòáóêè' };
    32.     arrProducts[1] = { id : '743', name : '2', price: '24680', type: 'Ìîáèëüíûå òåëåôîíû' };
    33.     arrProducts[2] = { id : '1306', name : '3', price: '5910.15', type: 'Áûòîâàÿ òåõíèêà' };
    34.  
    35.     console.log(arrProducts);
    36.  
    37.     arrProducts2 = JSON.parse('<?=utf8win1251(json_encode($test, JSON_UNESCAPED_UNICODE));?>');
    38.     console.log(arrProducts2);
    39.  
    40.     function kredit_buy()
    41.     {
    42.         DCLoans(partnerID, 'getCredit', { products: arrProducts2, order: '123' }, function(result){
    43.             console.log(result.error);
    44.             console.log(result.status);
    45.         });
    46.     }
    47. </script>
    48.  
    49. <script type="text/javascript">
    50.     window.ad_products = [
    51.     <?foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag){?>
    52.         {
    53.             "id": "<?=$arBasketItemstag["PRODUCT_ID"]?>",   // required
    54.             "number": "<?=intval($arBasketItemstag["QUANTITY"])?>"
    55.         },
    56.     <?}?>
    57.         // other products
    58.     ];
    59.  
    60.     window._retag = window._retag || [];
    61.     window._retag.push({code: "35453569ed", level: 3});
    62.     (function () {
    63.         var id = "admitad-retag";
    64.         if (document.getElementById(id)) {return;}
    65.         var s = document.createElement("script");
    66.         s.async = true; s.id = id;
    67.         var r = (new Date).getDate();
    68.         s.src = (document.location.protocol == "https:" ? "https:" : "http:") + "//cdn.lenmit.com/static/js/retag.min.js?r="+r;
    69.         var a = document.getElementsByTagName("script")[0]
    70.         a.parentNode.insertBefore(s, a);
    71.     })()
    72. </script>
    73.  
    74. <script>
    75.     window.APRT_DATA = {
    76.         pageType: 4,                    
    77.         basketProducts: [
    78.             <?foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag3){?>
    79.                 { id: <?=$arBasketItemstag3["PRODUCT_ID"]?>, name: "<?=$arBasketItemstag3["NAME"]?>", price: <?=$arBasketItemstag3["PRICE"]?>, quantity: <?=intval($arBasketItemstag3["QUANTITY"])?> },
    80.             <?}?>
    81.         ]
    82.     };
    83. </script>
    84.  
    85.  
    86. <!----Gooogle-RemarketingTag---->
    87. <script type="text/javascript">
    88. var google_tag_params = {
    89. ecomm_prodid:  '<?=$arBasketItemstag["PRODUCT_ID"]?>',
    90. ecomm_pagetype: 'cart',
    91. ecomm_totalvalue: <?=$arResult["allSum_FORMATED"]?>
    92. };
    93. </script>
    94. <!---Gooogle-RemarketingTag---->
    95.  
    96.  
    97.  
    98.  
    99. <?global $USER;
    100. $email = $USER->GetEmail();?>
    101. <?//$iblocks = array("179", "180", "181", "184", "185", "186", "187", "189", "190", "192", "195", "196", "198", "199", "200", "201", "202", "203", "272", "283", "263", "281", "271", "221", "282", "291", "273", "278", "255", "286", "264", "257", "268", "269", "270", "275", "295" );?>
    102.  
    103. <?//if(!empty($USER->GetEmail())){?>
    104.     <?//$newarray = array();?>
    105.     <?//foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag){?>
    106.         <?//if(in_array($arBasketItemstag['CATALOG']['IBLOCK_ID'], $iblocks) && $arBasketItemstag["PRODUCT_ID"] != "19252"){?>
    107.             <?//$newarray[] = $arBasketItemstag;?>
    108.         <?//}?>
    109.     <?//}?>
    110.    
    111.     <?if(count($arResult["ITEMS"]["AnDelCanBuy"]) > 0){?>
    112.         <script type="text/javascript">
    113.             window.criteo_q = window.criteo_q || [];
    114.             window.criteo_q.push(
    115.                 { event: "setAccount", account: 29398 },
    116.                 { event: "setEmail", email: "<?=$email?>" },
    117.                 { event: "setSiteType", type: "d" },
    118.                 { event: "viewBasket", item: [
    119.                     <?foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItemstag2){?>
    120.                         { id: "<?=$arBasketItemstag2["PRODUCT_ID"];?>", price: "<?=$arBasketItemstag2["PRICE"];?>", quantity: "<?=$arBasketItemstag2["QUANTITY"];?>" },
    121.                     <?}?>
    122.                 ]}
    123.             );
    124.         </script>
    125.     <?}?>
    126. <?//}?>
    127.  
    128. <table>
    129.     <?$i=0;
    130.     foreach($arResult["ITEMS"]["AnDelCanBuy"] as $arBasketItems):
    131.         $i++;
    132.         $arBasketItems['PRICE'] = str_replace(GetMessage('RUB_REPLACE'), '<span class="rubl">'.GetMessage('RUB').'</span>',  $arBasketItems['PRICE_FORMATED']);?>
    133.         <tr>
    134.             <td class="ibimg">
    135.                 <input type="hidden" name="DELETE_<?=$arBasketItems["ID"] ?>" id="DELETE_I_<?=$i?>" value="" />
    136.                 <input type="hidden" name="DELAY_<?=$arBasketItems["ID"] ?>" id="DELAY_<?=$i?>" value="" />
    137.  
    138.                 <img src="<?=$arBasketItems['PRODUCT_PICTURE_SRC'];?>" alt="" />
    139.             </td>
    140.             <td class="ibname">
    141.                 <h3><a href="<?=$arBasketItems["DETAIL_PAGE_URL"]?>"><?=$arBasketItems["NAME"] ?></a></h3>
    142.  
    143.                 <?foreach($arBasketItems['PROPS'] as $prop):?>
    144.                     <b><?=$prop['NAME'];?>: <?=$prop['VALUE'];?></b>
    145.                     <br />
    146.                 <?endforeach;?>
    147.             </td>
    148.             <td class="ibprice">
    149.                 <span class="price"><?=$arBasketItems["PRICE"];?></span>
    150.             </td>
    151.             <td class="ibcount">
    152.                 <input type="text" name="QUANTITY_<?=$arBasketItems["ID"]?>"  id="QUANTITY_<?=$i?>" value="<?=$arBasketItems["QUANTITY"]?>" class="txt w32" />
    153.                 <button onclick="setQuantity('#QUANTITY_<?=$i?>', '+'); return false;" class="button4">+</button> <button onclick="setQuantity('#QUANTITY_<?=$i?>', '-'); return false;" class="button5">-</button>
    154.             </td>
    155.             <td class="ibdel">
    156.                 <button onclick="setDelay('#DELAY_<?=$i?>', 'Y'); return false;" class="button6 sym" title="<?=GetMessage('SALE_OTLOG')?>">&#0123;</button>
    157.             </td>
    158.             <td class="ibdel">
    159.                 <button onclick="setDelete('#DELETE_I_<?=$i?>'); return false;" class="button6 sym" title="<?=GetMessage('SALE_DELETE')?>">&#206;</button>
    160.             </td>
    161.         </tr>
    162.     <?endforeach;?>
    163. </table>
    164.  
    165. <div class="make_order">
    166.     <?if(!$USER->IsAdmin()){?>
    167.         <style type="text/css">
    168.             .coupon_new{
    169.                 background: url("/bitrix/templates/bitronic_1.10.0/static/img/coupon2.png") top left no-repeat;
    170.                 width: 250px;
    171.                 height: 127px;
    172.                 position: absolute;
    173.                 left: 50%;
    174.                 margin-left: -125px;
    175.             }
    176.             .coupon_new_inp{
    177.                 position: relative;
    178.                 top: 50px;
    179.                 left: -70px;
    180.                 width: 107px;
    181.                 height: 29px;
    182.                 border: none;
    183.                 outline: none;
    184.                 background-color: transparent;
    185.                 font-size: 19px;
    186.                 padding-left: 5px
    187.             }  
    188.         </style>
    189.        
    190.         <div class="coupon_new">
    191.             <?if ($arParams["HIDE_COUPON"] != "Y"):?>
    192.                 <input class="coupon_new_inp" type="text" name="COUPON" value="<?=$arResult["COUPON"]?>" size="8">
    193.             <?endif;?>
    194.         </div><!--.cupon-->
    195.     <?}else{?>
    196.         <div class="cupon" style="width: 380px;">
    197.             <?if ($arParams["HIDE_COUPON"] != "Y"):?>
    198.                 <label><?= GetMessage("STB_COUPON_PROMT") ?></label>
    199.                 <input class="txt w180" type="text" name="COUPON" value="<?=$arResult["COUPON"]?>" size="20">
    200.             <?endif;?>
    201.         </div><!--.cupon-->
    202.     <?}?>
    203.    
    204.     <br />
    205.     <br />
    206.    
    207.     <span class="sum">
    208.         <?= GetMessage("SALE_ITOGO")?>: <strong><?=str_replace(GetMessage('RUB_REPLACE'), '<span class="rubl">'.GetMessage('RUB').'</span>',  $arResult["allSum_FORMATED"]);?></strong>
    209.     </span>
    210.     <!--<button onclick="$('#basket_form').attr('action', '<?=$arParams[PATH_TO_ORDER]?>').submit();  return false;" class="button3"><?echo GetMessage("SALE_ORDER")?></button>-->
    211.     <input type="submit" value="<?echo GetMessage("SALE_ORDER")?>" class="button3" name="BasketOrder"  id="basketOrderButton">
    212. </div>
    213.  
    214. <!--.make_order-->
    215.  
    216. <!-- BUY ONE CLICK COMPONENT /-->
    217. <style>
    218.     #SALE_ORDER {
    219.         background: none repeat scroll 0 0 #ff9318 !important;
    220.         border: 2px solid black;
    221.         border-radius: 5px;
    222.         bottom: 100px;
    223.         color: white !important;
    224.         font-size: 14px;
    225.         font-weight: bolder;
    226.         line-height: 37px;
    227.         position: absolute;
    228.     }
    229. </style>
    230.  
    231.  
    232. <?$APPLICATION->IncludeComponent("westpower:sale.order.oneclick", "template2", array(
    233.     "IBLOCK_TYPE" => "dict",
    234.         "IBLOCK_ID" => "179",
    235.         "OFFERS_PROPERTY_CODE" => array(
    236.             0 => "",
    237.             1 => "",
    238.         ),
    239.         "IS_JQUERY" => "Y",
    240.         "PERSON_TYPE" => "1",
    241.         "PERSON_TYPE_PROPS" => array(
    242.             0 => "1",
    243.             1 => "2",
    244.             2 => "3",
    245.         ),
    246.         "ORDER_PRODUCT" => "1",
    247.         "PAYSYSTEM" => "1",
    248.         "DELIVERY" => "1",
    249.         "USE_USER" => "N",
    250.         "USE_COMMENT" => "N",
    251.         "EVENT_MESSAGE_ID" => "",
    252.         "USE_CAPTCHA" => "N",
    253.         "TITLE_POPUP" => "Îôîðìëåíèå çàêàçà â îäèí êëèê",
    254.         "CONFIRM_ORDER" => "Ñïàñèáî. Âàø çàêàç ïðèíÿò.",
    255.         "IMAGE_WIDTH" => "130",
    256.         "IMAGE_HEIGHT" => "130",
    257.         "HIDE_BUTTON" => "Y"
    258.     ),
    259.     false,
    260.     array(
    261.         "ACTIVE_COMPONENT" => "N"
    262.     )
    263. );?>
    264. <!-- BUY ONE CLICK END COMPONENT /-->
     
  6. Ozymandis

    Ozymandis Новичок

    С нами с:
    30 авг 2015
    Сообщения:
    7
    Симпатии:
    0
    А если так?

    Код (Javascript):
    1. <script type="text/javascript">
    2. var google_tag_params = {
    3. ecomm_prodid:  ,
    4. ecomm_pagetype: 'cart',
    5. ecomm_totalvalue: <?=$arResult["allSum_FORMATED"]?>
    6. };
    7. google_tag_params["ecomm_prodid"]=window.ad_products;
    8. </script>