PHP Foreach 与 Smarty

PHP Foreach with Smarty

我正在尝试制作一个下拉列表以在 PHP 的 Smarty 中工作,下拉列表的数据来自 mysql。

我做到了:Image

但不能用作下拉菜单,它会在一个部分中显示所有数据。

这是我在下面使用的代码。

PHP

<?php
foreach ($options as $multiplier) {
  $option = "<option ";

  if ($multiplier == $results['multiplier']) {
    $option .= "selected=selected ";
  }

  $option .= "value=" . $multiplier . ">" . unesc($multiplier) . "</option>";

  $multi['option'] = $option;
  $multiplier_option[] = $multi;
}
$smarty->assign('multiplier_option', $multiplier_option);
unset($multiplier_option);

和HTML.

<tr>
  <td align='left' class='header'>{$lang_multiplier}:</td>
  <td align='left' class='lista' colspan='2'><select name='multiplier'>{foreach item=multi from=$multiplier_option}{$multi.option}{/foreach}</select></td>
</tr>

我不知道该怎么做。

让 Smarty 为您代劳。

html_options 函数将为您构建标记,只需为值和输出传入乘数数组,并设置选定的乘数。

$smarty->assign('multipliers', $options);
$smarty->assign('selectedMultiplier', $results['multiplier']);
<tr>
    <td align='left' class='header'>{$lang_multiplier}:</td>
    <td align='left' class='lista' colspan='2'>
        {html_options name=multiplier values=$multipliers output=$multipliers selected=$selectedMultiplier}
    </td>
</tr>