Cambiar <option> seleccionada de un <select> segun valor en BD (PHP)

Iniciado por Aikanáro Anário, 21 Junio 2012, 09:37 AM

0 Miembros y 1 Visitante están viendo este tema.

Aikanáro Anário

Digamos que tengo un select de estado civil (soltero, casado, divorciado, etc). Entonces quiero que al presentar los datos de una persona en la pagina el estado civil se lea desde la base de datos y poner el estado civil que se leyo como la opcion seleccionada en el combo box o select.

Por ejemplo, para un input type text, es fácil, se hace algo así:
Código (html4strict) [Seleccionar]

$fila = mysql_fetch_assoc($rsPersonas);
<input type="text" name="txtNombre" value="$fila['nombre'] />
Lo que faltaba en internet: http://binar10s.blogspot.com/

[u]nsigned

Usando la propiedad 'selected'. No se bien como sera la logica de tu aplicacion, pero suponiendo que el estado es 'casado' te pongo como deberia quedar el html final:

Código (html4strict,3) [Seleccionar]
<select id="estado_civil" name="estado_civil">
<option value="1">Soltero</option>
<option value="2" selected>Casado</option>
<option value="3">Divorciado</option>
<option value="4">Viudo</option>
</select>


Creo que ya sabras que hacer con PHP , a fuerza de condicionales IF  ;)

Saludos!!

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

Graphixx

#2
En el formulario:
Código (php) [Seleccionar]
<select name="estado_civil" id="estado_civil">
 <option>Seleccione uno...</option>
  <?php 
$ecivil 
$obj_ecivil->getInfoComboBox("tb_estadocivil","0","1"); 
for($i=0;$i<sizeof($ecivil);$i+=2) {
if($ecivil[$i] == 13){
echo "<option selected=\"selected\" value=\"".$ecivil[$i+1]."\">".$ecivil[$i+1]."</option>\n";
}else{
echo "<option value=\"".$ecivil[$i+1]."\">".$ecivil[$i+1]."</option>\n";
}
   }
?>

</select>


y en el objeto:
Código (php) [Seleccionar]
public function getInfoComboBox($tabla, $colum_codigo, $colum_nombre){
$this->conectar();
$sql = "SELECT * FROM ".$tabla;
$resp = $this->conn->consultar($sql);
$info = array();
$i = 0;
while($datos = @mysql_fetch_array($resp)){
$info[$i] = $datos[$colum_codigo];
$i++;
$info[$i] = $datos[$colum_nombre];
$i++;
}
$this->desconectar();
return $info;
}


La funcion getInfoComboBox te sirve pa llenar cualquier select con cualquier tabla mysql.
Nada tiene fin solo hay pequeñas pausas, pausas que determinan el comienzo de otros. Graphixx
Mi blog