Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2017, 15:08
Avatar de CarlosMex
CarlosMex
 
Fecha de Ingreso: mayo-2005
Mensajes: 67
Antigüedad: 19 años, 7 meses
Puntos: 0
Como mando un array en PDO para usarlo en un {html_options} de smarty

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?
__________________
CarlosMex