2015-05-08 3 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']' is? – kel

ответ

0

Вы пытаетесь удалить [language] из $ lang в php-код?

+0

Все тот же результат. –

+0

Можете ли вы опубликовать print_r og $ lang? –

+0

Выход: 1. Я действительно не думаю, что переменные являются проблемой. Я считаю, что это что-то связано с запросом. –

Смежные вопросы