Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Aikanáro Anário en 21 Junio 2012, 09:37 am



Título: Cambiar <option> seleccionada de un <select> segun valor en BD (PHP)
Publicado por: Aikanáro Anário en 21 Junio 2012, 09:37 am
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
  1. $fila = mysql_fetch_assoc($rsPersonas);
  2. <input type="text" name="txtNombre" value="$fila['nombre'] />
  3.  


Título: Re: Cambiar <option> seleccionada de un <select> segun valor en BD (PHP)
Publicado por: [u]nsigned en 21 Junio 2012, 17:10 pm
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
  1. <select id="estado_civil" name="estado_civil">
  2. <option value="1">Soltero</option>
  3. <option value="2" selected>Casado</option>
  4. <option value="3">Divorciado</option>
  5. <option value="4">Viudo</option>

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

Saludos!!


Título: Re: Cambiar <option> seleccionada de un <select> segun valor en BD (PHP)
Publicado por: Graphixx en 21 Junio 2012, 22:19 pm
En el formulario:
Código
  1. <select name="estado_civil" id="estado_civil">
  2.  <option>Seleccione uno...</option>
  3.   <?php
  4. $ecivil = $obj_ecivil->getInfoComboBox("tb_estadocivil","0","1");
  5. for($i=0;$i<sizeof($ecivil);$i+=2) {
  6. if($ecivil[$i] == 13){
  7. echo "<option selected=\"selected\" value=\"".$ecivil[$i+1]."\">".$ecivil[$i+1]."</option>\n";
  8. }else{
  9. echo "<option value=\"".$ecivil[$i+1]."\">".$ecivil[$i+1]."</option>\n";
  10. }
  11.   }
  12. ?>
  13. </select>

y en el objeto:
Código
  1. public function getInfoComboBox($tabla, $colum_codigo, $colum_nombre){
  2. $this->conectar();
  3. $sql = "SELECT * FROM ".$tabla;
  4. $resp = $this->conn->consultar($sql);
  5. $info = array();
  6. $i = 0;
  7. while($datos = @mysql_fetch_array($resp)){
  8. $info[$i] = $datos[$colum_codigo];
  9. $i++;
  10. $info[$i] = $datos[$colum_nombre];
  11. $i++;
  12. }
  13. $this->desconectar();
  14. return $info;
  15. }

La funcion getInfoComboBox te sirve pa llenar cualquier select con cualquier tabla mysql.