gold_dezmor
@gold_dezmor
Digital director / Product manager

Что не так с Java скриптом?

Всем доброго дня!

Есть вот такой Script:
В нем я должен спарсить из массива $arResult
[PRODUCT_ID] и [QUANTITY], которые должны записаться в соответствующие переменные "id" и "number".
Но у меня в переменные не пишется ничего. В чем проблема может быть?
Распринтовку массива привожу в комментарии.

<script type="text/javascript">
    window.ad_products = [{
	"id": "<?php echo $arResult['PRODUCT_ID'] ?>",   // required
        "number": "<?php echo $arResult['QUANTITY'] ?>"
    }
        // other products
    ];

    window._retag = window._retag || [];
    window._retag.push({code: "9ce88874e0", level: 3});
    (function () {
        var id = "admitad-retag";
        if (document.getElementById(id)) {return;}
        var s = document.createElement("script");
        s.async = true; s.id = id;
        var r = (new Date).getDate();
        s.src = (document.location.protocol == "https:" ? "https:" : "http:") + "//cdn.lenmit.com/static/js/retag.min.js?r="+r;
        var a = document.getElementsByTagName("script")[0]
        a.parentNode.insertBefore(s, a);
    })()
</script>
  • Вопрос задан
  • 569 просмотров
Решения вопроса 2
lazalu68
@lazalu68
Salmon
Я в PHP особенно не умею, но мне кажется стоит инструкции выделять точкой с запятой. У меня ваш пример работает. Я сделал так:

<?php

$array = array(
    "foo" => "bar",
    "bar" => "foo"
);

?>

<script type="text/javascript">
    window.ad_products = [{
		        "id": "<?php echo $array['foo']; ?>", 
        "number": "<?php echo $array['bar']; ?>"
    }];

    console.log(ad_products[0].id, ad_products[0].number);
</script>


И все ок, в консоль вывелось "bar foo". Так что либо у вас с синтаксисом PHP проблема, либо вы неправильно обращаетесь к нужным переменным. Мне так кажется.

Достаточно чуть-чуть изменить мой пример чтобы подогнать его под ваш:
<?php

$arResult = array(
    "PRODUCT_ID" => 2435135,
    "QUANTITY" => 2
);

?>

<script type="text/javascript">
    window.ad_products = [{
		        "id": "<?php echo $arResult['PRODUCT_ID']; ?>", 
        "number": "<?php echo $arResult['QUANTITY']; ?>"
    }];

    console.log(ad_products[0].id, ad_products[0].number);
</script>


А с дампом этого не***ческого массива, извините, сами разбирайтесь) Берите php beautifier, ищите где у вас там нужные значения в этой структуре.
Ответ написан
gold_dezmor
@gold_dezmor Автор вопроса
Digital director / Product manager
<script>$('html').removeClass('hidedefaultwaitwindow');</script>
<script type="text/javascript">
    window.ad_products = [{
            "id": "<?php echo $arResult['ITEMS']['AnDelCanBuy']['0']['PRODUCT_ID']; ?>", 
        "number": "<?php echo $arResult['ITEMS']['AnDelCanBuy']['0']['QUANTITY']; ?>"
    }];


РЕШЕНИЕ РАБОТАЕТ
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Rema1ns
@Rema1ns
и так сойдет
может проблема в кеше?) как ведет себя скрипт с выключенным кешем компонента?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы