Умный шаблон для вертикального расположения полей массива

У меня есть массив, созданный в PHP, и я назначаю его умному шаблону. В приведенном ниже примере есть 2 набора данных, по 6 элементов в каждом. Количество наборов может меняться динамически.

 $formData = array (

    [homeTeam1] => homeTeam1
    [awayTeam1] => awayTeam1
    [homeTeamScore1] => homeTeamScore1
    [awayTeamScore1] => awayTeamScore1
    [gamePoints1] => gamePoints1
    [gameTime1] => gameTime1

    [homeTeam2] => homeTeam2
    [awayTeam2] => awayTeam2
    [homeTeamScore2] => homeTeamScore2
    [awayTeamScore2] => awayTeamScore2
    [gamePoints2] => gamePoints2
    [gameTime2] => gameTime2
)

Это некоторые поля ввода HTML, созданные в PHP, и мы хотели отобразить их в форме для использования редактирования.

Я использую приведенный ниже код для отображения этих полей ввода в форме.

{foreach from=$formData key='formEl' item='value'}
<tr>
    <td>$formEl</td>
</tr>
{/foreach}

С помощью приведенного выше кода поля ввода html отображаются горизонтально ниже одного за другим.

Текущий вывод:

homeTeam1
awayTeam1
homeTeamScore1
awayTeamScore1
gamePoints1
gameTime1

Ожидаемый результат:

homeTeam1  awayTeam1  homeTeamScore1  awayTeamScore1  gamePoints1  gameTime1

Я не смог найти способ добиться этого с помощью цикла {section}. Я был бы благодарен за любую помощь, так как я тоже не смог найти ни одного рабочего примера.


person Purus    schedule 14.10.2013    source источник


Ответы (1)


Если вы хотите отобразить все элементы в одной строке, просто используйте это:

<tr>
{foreach from=$formData key='formEl' item='value'}
    <td>{$formEl}</td>
{/foreach}
</tr>

Если вы хотите отобразить каждый набор элементов в одной строке, а именно по 6, используйте это:

<tr>
{foreach name='myLoop' from=$formData key='formEl' item='value'}    
    {if $smarty.foreach.myLoop.index % 6 == 0 && $smarty.foreach.myLoop.index != 0}    
        </tr><tr>
    {/if}
    <td> {$smarty.foreach.myLoop.iteration}</td>
{/foreach}
</tr>
person Fouad Fodail    schedule 14.10.2013
comment
Работает идеально. Спасибо. - person Purus; 15.10.2013