0

我在 PHP 中创建了一个数组并将其分配给 smarty 模板。下面的示例有 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
)

这些是在 PHP 中创建的一些 HTML 输入字段,并希望在表单中显示它们以使用编辑。

我正在使用以下代码在表单中显示这些输入字段。

{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} 循环实现此目的的方法。我会感谢任何帮助,因为我也找不到任何工作示例。

4

1 回答 1

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>
于 2013-10-14T21:14:09.430 回答