PHP для каждого с помощью Smarty

#php #html #smarty

Вопрос:

Я пытаюсь составить выпадающий список для работы в Smarty из PHP, данные выпадающего списка-из mysql.

Я добился этого: Изображения

Но не работает в раскрывающемся списке, он отображает все данные в одном разделе.

Это код, который я использовал ниже.

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>
 

Я не могу понять, как это сделать правильно.

Ответ №1:

Позволь Умнику сделать всю работу за тебя.

Функция 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>
 

Комментарии:

1. Спасибо за ответ, я добавил то, что вы опубликовали, но выпадающий список сейчас пуст и не отображает никакого значения.

2. У меня была ошибка — имена переменных в теге html_options были неверными. См.Обновление.

3. Так же, как на изображении, которое я опубликовал, все значения отображаются в одном месте, например, 1,2,3,4,5,6,7,8,9,10, А не в раскрывающемся списке, например, 1,2,3 и т. Д…. Только для каждого поля в раскрывающемся списке.

4. Можете ли вы опубликовать больше своего кода? Это не должно быть так сложно. Как выглядит ваш массив?