Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/05/2010, 05:37
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Respuesta: Auto selected

Anteriormente lidiaba con condicionales para asegurarme de que el option indicado apareciera seleccionado. Luego -y después de tanto golpe- descubrí una opción más rápida. Te dejo aquí parte del código:

Código PHP:
Ver original
  1. <?php
  2. $genero = 'un array desde la BD...';
  3. $html = '<select name="genero" id="genero">';
  4. foreach($genero as $gen)
  5.     $select_genero .= '<option value="'. htmlspecialchars($gen) .'">'. $gen .'</option>';
  6. $html .= str_replace('value="'. $config['genero'] .'"' , 'value="'. $config['genero'] .'" selected="selected"' , $select_genero);
  7. $html .='</select>';
  8. ?>
Explicando: se hizo un simple str_replace al value coincidente con el valor ingresado en la BD, agregándole selected="selected". Este truco sólo funciona con elementos de formularios que admitan opciones únicas (como selects o radios). Para campos con múltiples opciones lógicamente el truco no sirve, a menos que se coloque el reemplazo como un array y por lo tanto implicaría un trabajo más engorroso.