Я обновляю раздел, который использует MySQL для PDO, чтобы показать {html_options}
из Smarty. Этот код хорошо работает с MySQL, но я не знаю, как получить такие же результаты, используя PDO.Как отправить массив с PDO, чтобы использовать его в html_options из Smarty 3.1.21
Это код, который хорошо работает на самом деле:
// Send states
$q="SELECT id, state FROM states";
$data=$db->execute($q);
$idStates=array();
$states =array();
for ($i=0; $i<sizeof($data);$i++) {
array_push($idStates,$data[$i]->id);
array_push($states,$data[$i]->state);
}
$smarty->assign('idStates',$idStates);
$smarty->assign('states',$states);
Тогда все хорошо работает в .tpl файл
<select name="des_idState" class="form-control">
<option>Select state</option>
{html_options output="$states" values="$idStates" selected=$data.idState}
</select>
То, что я пытаюсь сделать с PDO работает хорошо, используя {foreach}
, но Мне нужно использовать selected
, и я думаю, что это проще всего сделать с помощью {html_options} Smarty, но я не знаю, как отправить массив из PDO.
$sql1="SELECT id, state FROM states";
$stmt = $dba->prepare($sql1);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$idStates = $row['id'];
$states = $row['state'];
$smarty->assign('idStates', $idStates);
$smarty->assign('states',$states);
}
Я пытался с этим кодом, который показывает мне массив, используя echo $idStates . ' ' . $states . '<br>';
, однако он не работает в {html_options}, ничего не показали, не ошибка, просто пустое место.
Может ли кто-нибудь мне помочь?