【问题标题】:PHP Foreach with SmartyPHP Foreach 与 Smarty
【发布时间】:2021-09-20 06:22:25
【问题描述】:

我正在尝试从 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>

我不知道如何正确地做到这一点。

【问题讨论】:

    标签: php html smarty


    【解决方案1】:

    让 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>
    

    【讨论】:

    • 感谢您的回答,我添加了您发布的内容,但下拉列表现在为空,不显示任何值。
    • 我有一个错误 - html_options 标记中的变量名称不正确。查看更新。
    • 和我发布的图片一样,所有值都显示在一个地方。 1,2,3,4,5,6,7,8,9,10 而不是像 1,2,3 等这样的下拉列表中的每个字段。
    • 你能发布更多你的代码吗?这不应该这么难。你的数组是什么样子的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多