Попросили доделать в bitrix страницу услуг которых около 200($elements). Решение выбрал "ленивой подгрузки". Реализацию выбрал isotope + infinite scroll. И получилось так что тяму не хватает как передать блок (элемент массива создаваемый скриптом php на лету:PHP код:в JS с учетом конечно же того что вначале должен выполняться JS над готовым массивом ( а ведь он еще не создан средствами php).
<?php
$file = fopen('dump.txt', 'w');
$ElemHTML[]="";
foreach ($elements as $arElement)
{
$res = CIBlockElement::GetByID($arElement["PROPERTY_PRIMER"]);
$primer = $res->GetNext();
if(!empty($primer)) $codeid = " ".$primer['CODE'];
$arElementID=$arElement["ID"];
$arElementSRC=$arElement["DETAIL_PIC"]["SRC"];
$arElementNAME=$arElement["NAME"];
$arElementSCR=$arElement["PREVIEW_PIC"]["src"];
$arElementTEXT=$arElement["PREVIEW_TEXT"];
array_push($ElemHTML,"<li id=\"$arElementID\" class=\"elems-item $codeid\"><a href=\"$arElementSRC\" rel=\"group\" class=\"fnbox\" title=\"$arElementNAME\"><img class=\"stretchRight backfon img elems-item-anim $arElementID\" alt=\"$arElementNAME\" src=\"$arElementSCR\" /></a><div><div>$arElementNAME</div><div>$arElementTEXT</div></div></li>");
}//foreach ($elements as $arElement)...
array_shift($ElemHTML);
$result=implode(',',$ElemHTML);
fwrite($file,$result);
fclose($file);
?>
- 24.01.2017 12:12
- Регистрация: 17.01.2017
- Сообщений: 6
- Репутация: 0
Последний раз редактировалось Fezas; 24.01.2017 в 12:52.
- 24.01.2017 16:50
Вначале js, а потом php на одной странице так не получится. Есть вариант по аяксу данные подтянуть разве что.
- 24.01.2017 17:13
- Регистрация: 17.01.2017
- Сообщений: 6
- Репутация: 0
Исправил
PHP код:JS<?php
header('Content-Type: application/x-javascript; charset=utf8');
$ElemHTML=array();
foreach ($elements as $arElement)
{
$res = CIBlockElement::GetByID($arElement["PROPERTY_PRIMER"]);
$primer = $res->GetNext();
if(!empty($primer)) $codeid = " ".$primer['CODE'];
$arElementID=$arElement["ID"];
$arElementSRC=$arElement["DETAIL_PIC"]["SRC"];
$arElementNAME=$arElement["NAME"];
$arElementSCR=$arElement["PREVIEW_PIC"]["src"];
$arElementTEXT=$arElement["PREVIEW_TEXT"];
$Block='<li id='.$arElementID.' class="elems-item '.$codeid.'><a href="'.$arElementSRC.' rel="group" class="fnbox" title="'.$arElementNAME.'"><img class="stretchRight backfon img elems-item-anim '.$arElementID.'" alt="'.$arElementNAME.'" src="'.$arElementSCR.'" /></a><div><div>'.$arElementNAME.'</div><div>'.$arElementTEXT.'</div></div></li>';
array_push($ElemHTML,$Block);
}//foreach ($elements as $arElement)...
$Elem = json_encode($ElemHTML);
$result=implode(',' ,$ElemHTML);
$file = fopen('dump.txt', 'w');
fwrite($file,$result);
fclose($file);
?>PHP код:Дает var name = [null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null,null,null,null, null,null,null,null,null,null,null];var name = <? echo $Elem;?>;
Что не так не пойму... в дампе весь массив в порядке... - 28.01.2017 09:15
- Регистрация: 17.01.2017
- Сообщений: 6
- Репутация: 0
Проблема в переменной .$arElementNAME.
Она принимает значение типа "продукт "марка""
Тут в кавычках видимо дело... - 28.01.2017 12:30
- Регистрация: 17.01.2017
- Сообщений: 6
- Репутация: 0
addslashes ($arElementNAME); не помог
addcslashes($arElementNAME,'"'); не помог
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Повышаем конверсию за счет динамического контента | Дайджест блогосферы | 0 | 03.08.2015 17:08 |
Плагин объектов на карте | WordPress | 3 | 11.03.2014 04:30 |
Сервис динамического размещения блоков рекламы | Оффтоп и свободные темы | 2 | 24.02.2014 21:29 |
API Яндекс карты Поиск объектов | Поисковые системы | 1 | 07.04.2013 00:39 |
Изменение размера флеш объектов | Web программирование | 2 | 18.02.2013 19:45 |