2015-05-08 60 views
1

我有一個mysql數據庫查詢,我想用smarty來顯示使用foreach的選項列表。分配數組到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} 

而問題是,我的代碼只顯示在當前的語言選擇。

親切的問候!

+0

您是否嘗試過調試以查看'$ sch ['language']'的值是多少? – kel

回答

0

您是否嘗試將$ lang作業中的[language]刪除到php代碼中?

+0

仍然是一樣的結果。 –

+0

你可以發佈print_r og $ lang嗎? –

+0

輸出:1.我真的不認爲變量是問題。我相信它與查詢有關。 –