Hola de nuevo NSD
He seguido tus ejemplos paso a paso y parece que por fin se imprime todo correctamente a exepción de si repito alguna fecha en plan santo.
Por ejemplo para buscar los valores de fecha de nacimiento y santo lo he hecho así:
Código PHP:
Ver original<?php
$fecha_de_nacimiento = $fila['fecha_de_nacimiento'];
$santo = $fila['santo'];
?>
Y luego en el formulario de edición igual que en tu ejemplo pero cambiando
$_POST["dia_nacimiento"] por
$dia_nacimiento:
Código php:
Ver original<label>Fecha de nacimiento: </label>
<select id="dia_nacimiento" name="dia_nacimiento">
<option value="">Día: </option>
<?php
//$selected = (empty($_POST['dia_nacimiento']) ? 0 : $_POST["dia_nacimiento"]);
$selected = (empty($dia_nacimiento) ?
0 : $dia_nacimiento); for ($i=1; $i<32; $i++)
echo "<option value=\"$i\" ".($i == $selected ? "selected" : "").">$i</option>";
?>
</select>
<select id="mes_nacimiento" name="mes_nacimiento">
<option value="">Mes: </option>
<?php
$selected = (empty($mes_nacimiento) ?
0 : $mes_nacimiento); $meses = array('Meses','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio', 'Agosto','Septiembre','Octubre','Noviembre','Diciembre');
for ($i=1;$i<sizeof($meses); $i++){ echo "<option value=\"$i\" ".($i == $selected ? "selected" : "").">$meses[$i]</option>";
}
?>
</select>
<select id="ano_nacimiento" name="ano_nacimiento">
<option value="">Año: </option>
<?php
$selected = (empty($ano_nacimiento) ?
0 : $ano_nacimiento); for ($i=1930; $i<2002; $i++)
echo "<option value=\"$i\" ".($i == $selected ? "selected" : "").">$i</option>";
?>
</select>
Hasta aquí va todo perfectamente, sin embargo si repito la opción del campo "santo" (que por cierto la he mantenido como "date" en la base de datos) pues la edita correctamente pero a la hora de volver a imprimirla muestra día: 1 y mes: Enero.
Código PHP:
Ver original<label>Fecha del santo: </label>
<select id="dia_santo" name="dia_santo">
<option value="">Día: </option>
<?php
$selected = (empty($dia_santo) ?
0 : $dia_santo); for ($i=1; $i<32; $i++)
echo "<option value=\"$i\" ".($i == $selected ? "selected" : "").">$i</option>";
?>
</select>
<select id="mes_santo" name="mes_santo">
<option value="">Mes: </option>
<?php
$selected = (empty($mes_santo) ?
0 : $mes_santo);
$meses = array('Meses','Enero','Febrero','Marzo','Abril','Mayo','Junio','Julio', 'Agosto','Septiembre','Octubre','Noviembre','Diciembre');
for ($i=1;$i<sizeof($meses); $i++){ echo "<option value=\"$i\" ".($i == $selected ? "selected" : "").">$meses[$i]</option>";
}
?>
</select>
Lo he revisado varias veces y no encuentro un error o el por qué de imprimir siempre 1 o Enero en santo.
¿Es la manera correcta?
Gracias de nuevo por tu ayuda, saludos.