Задать вопрос
@anton99zel
29а класс средней школы №7

Как в ajax ответе выполнить скрипт?

Отправляю с index.php форму с данными о клиенте и выбранные товары на страницу ajax.php (post ajax), где далее создается заказ в Битрикс с помощью api. Если заказ создался, то получаем номер заказа ID и
в ответ получаю и вывожу в div result то, что находится в "echo" в файле ajax.php
В моем случае "Спасибо за заказ".
У меня есть код для гугл аналитики, чтобы он отработал должно произойти создание заказа, получение ID и вывод на страницу. С последним и не получается, получаю разнообразие синтаксических ошибок.
Сейчас так в index.php
<div id="result"></div>
в ajax.php
<?
// много кода, а в конце:
echo '</br>Спасибо за заказ</br>'.$message;
$USER->Logout();
?>

И я предположив, чтобы код аналитики выполнился, он должен вернуться в ajax ответе в echo
и сделал так:
spoiler
<?
// много кода, а в конце:
echo '</br>Спасибо за заказ</br>'.$message;
echo "<script>
        $(document).ready(function(){
            //ga('require', 'ec');
            ga('set', '&cu', 'RUB');
        <?
            $dbBasket = CSaleBasket::GetList(
                array('NAME' => 'ASC'),
                array('ORDER_ID' => $order_id),
                false,
                false,
                array('ID', 'NAME', 'QUANTITY', 'PRICE', 'CURRENCY', 'PRODUCT_ID')
            );
            $aCart = Array();
            while ($arBasket = $dbBasket->Fetch()) {
                if(isset($aCart[$arBasket[PRODUCT_ID]]))
                    $aCart[$arBasket[PRODUCT_ID]] = $arBasket[QUANTITY] + $aCart[$arBasket[PRODUCT_ID]];
                else
                    $aCart[$arBasket[PRODUCT_ID]] = $arBasket[QUANTITY];
            }
            $dbBasket = CSaleBasket::GetList(
                array('NAME' => 'ASC'),
                array('ORDER_ID' => $order_id),
                false,
                false,
                array('ID', 'NAME', 'QUANTITY', 'PRICE', 'CURRENCY', 'PRODUCT_ID')
            );
            $aCartGoogle = Array();
            while ($arBasket = $dbBasket->Fetch()){?>
                <?if(!isset($aCartGoogle[$arBasket[PRODUCT_ID]])){?>

                        ga('ec:addProduct', {
                            'id': '<?=$arBasket[PRODUCT_ID]?>',
                            'name': '<?=$arBasket[NAME]?>',
                            'category': '',
                            'brand': '',
                            'variant': '',
                            'price': '<?=$arBasket[PRICE]?>',
                            'quantity': <?=$aCart[$arBasket[PRODUCT_ID]]?> // количество товара
                        });

                <?}?>
            <?}?>
        ga('ec:setAction', 'purchase', {
            id: '<?=$order_id?>', // ID заказа
            affiliation: '',
            revenue: '<?=$_POST[LPRICES]?>', // Общая сумма в рублях
            tax: '0.00', // налог
            shipping: '0.00',  // доставка
            coupon: ''
        });
        ga('send', 'pageview');
        })
    </script>";
$USER->Logout();
?>

На что получаю в строке if(isset($aCart[$arBasket[PRODUCT_ID]])) синтаксическую ошибку:
Parse error: syntax error, unexpected '[', expecting ']' in...
Подскажите как исправить или как правильно.
  • Вопрос задан
  • 74 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы