将数组分配给Smarty,然后使用foreach解析它

时间:2015-05-08 15:25:45

标签: php html smarty

我有一个mysql查询的数组,我想在smarty中使用foreach来显示选项列表。

更确切地说,我在mysql表中有一个语言列表,我想在html选择器中显示所有语言,我也希望显示当前选择的语言。

我的查询:

public function genLanguageSchema()
{
    $get = $this->pdo->prepare('SELECT language FROM cms.language_schema WHERE status="ENABLED"');
                $get->execute();

    return $langList = $get->fetch(PDO::FETCH_ASSOC);
}

php代码:

$lang = $db->genLanguageSchema();
    $sch  = array(
        'language' => $lang['language']
        );

$template->assign('currentLanguage', 'Romana');
$template->assign('availableLanguages', $sch['language']);

模板代码:

{if $show_language_chooser}
            <tr>
                <td style="width:25% !important"><label for="language_field">Website language</label></td>
                <td>
                    <select name="language_field" id="language_field">
                        {foreach from=$availableLanguages item=language}
                            <option value="{$language}" {if $currentLanguage == $language} selected="selected" {/if}>{$language}</option>
                        {/foreach}
                    </select>
                </td>
            </tr>
        {/if}

问题是我的代码只显示选择器中的当前语言。

亲切的问候!

1 个答案:

答案 0 :(得分:0)

您是否尝试从$ lang分配中删除[language]到PHP代码?