Estoy actualizando una sección que usa mysql a
PDO para desplegar en un {html_options} de
Smarty, y algo que funciona bien en mysql no se cómo lograrlo con
PDO
Este es el código original que funciona bien actualmente:
Código PHP:
//Mando estados
$q="SELECT id, estado FROM estados";
$data=$db->execute($q);
$idEstados=array();
$estados=array();
for ($i=0; $i<sizeof($data);$i++) {
array_push($idEstados,$data[$i]->id);
array_push($estados,$data[$i]->estado);
}
$smarty->assign('idEstados',$idEstados);
$smarty->assign('estados',$estados);
Luego en el .tpl todo se muestra correctamente, incluyendo "selected" que es el me importa más, si no, haría un {foreach} para desplegar los estados.
Código HTML:
<select name="destino_idEstado" class="form-control">
<option>Seleccione un Estado</option>
{html_options output="$estado" values="$idEstado" selected=$data->idEstado}
</select>
Lo que estoy haciendo con PDO funciona bien si hago un {foreach}, pero necesito usar el "selected" y me es más fácil hacerlo con el {html_options} de smarty, pero no se cómo enviar el array desde PDO para que funcione.
Código PHP:
$sql1="SELECT id,estado FROM testados";
$stmt = $dba->prepare($sql1);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$idEstado = $row['id'];
$estado = $row['estado'];
$smarty->assign('idEstado', $idEstado);
$smarty->assign('estado',$estado);
}
He estado haciendo pruebas y el array se muestra correctamente si uso:
Código PHP:
echo $idEstado .' '. $estado .'<br>';
Sin embargo en el .tpl de smarty no marca error, sólo muestra el espacio en blanco
De esta forma NO marca error, sólo no despliega el correspondiente.
¿Alguien podría orientarme?