ForEach - циклическая вставка данных

ForEach - циклическая вставка данных

Инструкция foreach cлужит для циклического вывода данных. Внутри тэга располагается шаблон вывода.

Значения атрибутов:

data-role       - указывает имя инструкции foreach
data-form       - указывает имя формы из которой берётся набор данных
data-sort       - через пробел перечисляются имена полей для сортировки, 
                  опционально через двоеточие указывается направление сортировки
                  :d или :a (DESC и ASC соответственно)
                  Так же атрибут data-sort может использоваться для сортировки данных таблицы 
                  по столбцам. Для этого необходимо указать атрибут в тэге table->thead->th
                  соответствующему столбцу по которому будет осуществляться сортировка.
                  Содержимое атрибута data-sort, в этом случае, так же перечисляет имена полей 
                  по которым будет производиться сортировка.
data-size       - разбивка на страницы через ajax, указывается количество элементов на странице.
                  Разбивка на страницы автоматически включается при количестве записей более 200.
                  Для принудительного отключения разбивки на страницы, в качестве значения
                  атрибута data-size используется false.
data-pagination - разбивка на страницы через js, указывается количество элементов на странице
data-fld        - используется совместно с атрибутами data-group и data-total, 
                  предназначен для назначения имени ячейки (тэг TD).
data-group      - в атрибут через пробел передаются имена ячеек таблицы, 
                  по которым необходимо сгруппировать данные. 
                  Имена ячеек назначаются атрибутом data-fld
data-total      - в атрибут через пробел передаются имена ячеек таблицы, 
                  по которым необходимо суммировать данные. 
                  Имена ячеек назначаются атрибутом data-fld
from            - укзывает имя элемента массива содержащего набор данных
index           - указывает индекс элемента массива from для вывода
json            - принимает набор данных для вывода в формате json
item            - имя записи из которой берётся набор данных 
                  (используется совместно с form)
field           - имя поля из которого берётся набор данных 
                  (используется совместно с form и item)
rand            - при rand="true" набор данных выводится в случайном порядке
limit           - ограничение количества выводимых результатов
step            - разбивает вывод на блоки по указаное количество записей
call            - имя существующей процедуры, которая используется для кастомной 
                  подготовки набора данных списка
oconv           - имя существующей процедуры, которая используется для кастомной 
                  подготовки данных текущей записи перед выводом
vars            - передаются какие-либо переменные, добавляемые в текущий Item

Можно использовать вложеные иструкции foreach, в этом случае если ключи массивов родительского и дочернего списков совпадают, то для получения значений родительского массива, перед именем ключа нужно поставить %

Пример:

<div data-role="foreach" form="accounts" data-sort="id">
    <ul data-role="foreach" form="{{id}}_orders" data-sort="date:d" limit="100">
        <li>{{date}} - {{summ}} (account (id: {{%id}} name: {{%name}})</li>
    </ul>
</div>

В данном примере показан вывод данных с вложеным циклом. Обратите внимание, что имя вложеной формы вычисляется на основе id формы accounts.

Специальная переменная _idx позволяет обращаться к значениям массивов в текущем потоке данных

Пример:

<div data-role="foreach" form="accounts" data-sort="id:a">
    <ul data-role="foreach" from="{{phone}}>
        <li>Телефон: {{%phone[_idx]}}, отдел: - {{%phone_type[_idx]}}</li>
    </ul>
</div>

Пример:
В данном примере показана возможность группировки данных и подведение итогов по группам. В атрибуты data-group и data-total передаются имена ячеек для группировки и подведения итогов. Имена ячеек (тэг td) назначаются с помощью атрибута data-fld.

<table class="table table-striped table-bordered table-condensed formlist">
     <thead>
       <tr>
           <th>Дата</th>
           <th>Ф.И.О.</th>
           <th>Карта</th>
           <th>Расч.счёт</th>
           <th>Банк</th>
           <th>Сумма</th>
      </tr>
    </thead>
    <tbody data-role="foreach" from="result" data-total="summ" data-group="name bank" data-sort="date:d">
        <tr item="{{id}}">
            <td data-fld="date" data-sort="desc">{{date}}</td>
            <span data-role="formdata" form="cards" item="{{card}}" data-hide="*">
              <td data-fld="name"><span data-role="formdata" form="users" item="{{cardholder}}">{{name}}</span></td>
              <td data-fld="cardnum">{{cardnum4}}</td>
              <td>{{accnum}}</td>
              <td data-fld="bank"><span data-role="dict" from="bank" item="{{bank}}">[{{id}}] {{name}}</span></td>
            </span>
            <td data-fld="summ">{{summ}}</td>
        </tr>
    </tbody>
</table> 

Интеграция с Bootstrap v.3

Чистый & понятный код

Парсер DOM в PHP