Hola: Al hacer una consulta, quiero rellenar un formulario con los datos de una Base de Datos, para que se compruebe y se modifique posteriormente, si existe algún error.
En los imput normales, tipo text, no hay ningún problema. Sin embargo, cuando hay chekbox o radio, no aparece el formulario por defecto con la marca correspondiente (el valor del checkbox seleccionado se graba en la Base de Datos como value="ON").
¿cómo debería hacerlo?
Un resumen del código es éste:
<?php
$usuario = $_POST["usuario"];
include ("conectar.php");
$result = mysql_query("select * from usuarios WHERE usuario='$usuario'");
?>
<html>
<body>
<table>
<?php
while($row = mysql_fetch_array($result))
{
?>
<tr>
<td>Usuario: <?php echo $row["usuario"]; ?></td>
</tr>
.....................etc.
<tr>
<td>Preferencia de contacto: <input type="checkbox" name="correo_postal" value="<?php echo $row["correo_postal"]; ?>">Correo postal <input type="checkbox" name="email" value="<?php echo $row["email"]; ?>">Email <input type="checkbox" name="telefono" value="<?php echo $row["telefono"]; ?>">Teléfono</td>
</tr>
<tr>
<td>Sexo: <select type="select" >
<option selected value="<?php echo $row["sexo"]; ?>"><?php echo $row["sexo"]; ?></option>
<option value="Hombre">Hombre</option>
<option value="Mujer">Mujer</option>
</select>
</td>
</tr>
.......................................... etc.
</table>
<?
}
mysql_close($conectar);
?>
Otro pequeño defecto: En los select, de acuerdo al código que he puesto, me aparece por defecto el valor grabado en la Base de Datos, pero al abrir el menú desplegable vuelve a repetirse el valor puesto en el selected (por ejemplo, Hombre), en lugar de posicionarse directamente en un menú desplegable donde solo hubiese las dos opciones de Hombre, o Mujer.
¿Esto tiene que ser así, o hay otra forma de forzar el relleno del formulario?