Передача куска HTML через значение массива.
Здравствуйте, Друзья!
Помогите советом, понимаю что задачка пустяковая, но решить не могу уже второй день. в js не сильно силен к сожалению. Задача такая, Есть сайт одностраничный на битриксе, на нем есть блок товары, в виде карусели, в блок соответственно товары подгружаются из инфоблока. У товара есть свойства:
Если щелкнуть по товару появляется попап-окно с детальной информацией о товаре и формой заказа. В нем выводится:
Естественно для каждого товара попап отдельный не будешь делать, потому все значения в него подгружаются при нажатии на товар. Сделать я решил так: Для каждого товара, при генерации страницы, генерируется ассоциативный массив (объект) в js, а при нажатии на товар этот массив передается функции которая осуществляет подмену в попап окошке. выглядит в коде это вот так: <script> var good_<?=$arElement["ID"];?> = { name: '<?=$arElement["NAME"];?>', price: '<?=$arElement["PROPERTIES"]["CATALOG_PRICE"]["VALUE"]?><?=$arElement["PROPERTIES"]["CATALOG_VALUTA"]["VALUE"]?>', photo: { 0: '<?=$arElement["DETAIL_PICTURE"]["SRC"];?>', <?for($i = 1; $i< count($arElement["PROPERTIES"]["CATALOG_PHOTO"]["VALUE"])+1; $i++){?> <?=$i;?>: '<?=CFile::GetPath($arElement["PROPERTIES"]["CATALOG_PHOTO"]["VALUE"][$i-1]);?>', <?}?> } text: '<?=htmlspecialchars($arElement["PREVIEW_TEXT"]);?>', } </script> <button class="btn btn-class btn-block" data-toggle="modal" data-target="#goodsModal" onclick="goods_modal(good_<?=$arElement["ID"];?>)">Подробнее</button> в отдаче сервера вот так: <script> var good_18 = { name: 'Тестовый товар', price: '100руб.', photo: { 0: '/upload/iblock/7ce/12.jpg', 1: '/upload/iblock/e18/1.jpg', } text: 'text text text text text text text text text text text ', } </script> <button class="btn btn-class btn-block" data-toggle="modal" data-target="#goodsModal" onclick="goods_modal(good_18)">Подробнее</button> Проблема возникает если Описание товара представлено в виде html. Оно передается в элемент text массива. Если значение в виде простого текста, как в примере выше (text: 'text text text text text text text text text text text '), то все работает значение передается, но если значение в виде кода html, например: text text text</br> text text text</br> text text text то js выдает ошибку при составлении такого массива. т.е. при попытке передачи массива функции (onclick="goods_modal(good_18)") вылетает ошибка: Uncaught ReferenceError: good_18 is not defined, ну и соответственно ничего не передается и не меняется. Сначала думал что нужно подменить спецсимволы на код, потому вставил в исходный код htmlspecialchars, но и это не помогло Вот как то так, помогите, пожалуйста, разобраться, а то всю голову уже сломал, почему не "клеится"... |
Нужно из переменной $arElement["PREVIEW_TEXT"] удалить переводы строк
|
Цитата:
|
Разобрался, понял про какие переносы имелось ввиду, вот это теперь работает:
text: '<?=str_replace("\n", "", $arElement["PREVIEW_TEXT"]);?>' Спасибо за подсказку)) |
Часовой пояс GMT +3, время: 04:37. |