Hola de nuevo.
Sí por ejemplo lo hago como citaba arriba solo con los días:
Código PHP:
Ver originalFecha de nacimiento:
<select id="dianacimiento" name="dianacimiento" selected="Día">
<option value="Día" <?php if ($dianacimiento == 'Día') echo ' selected="selected"'; ?> >Día</option>
<option value="1" <?php if ($dianacimiento == '1') echo ' selected="selected"'; ?> >1</option>
<option value="2" <?php if ($dianacimiento == '2') echo ' selected="selected"'; ?> >2</option>
<option value="3" <?php if ($dianacimiento == '3') echo ' selected="selected"'; ?> >3</option>
<option value="4" <?php if ($dianacimiento == '4') echo ' selected="selected"'; ?> >4</option>
</select>
<?php
if(isset($_POST['enviar'])) if ($dianacimiento != "" && $dianacimiento != "Día")
echo "Día de nacimiento $dianacimiento";
else {echo "Indique el día de nacimiento";}
?>
Cuando lo quiero hacer lo mismo con un bucle si lo hago de esta manera se me queda marcado siempre 31:
Código PHP:
Ver original<option value="Día" <?php if ($dianacimiento == 'Día') echo ' selected="selected"'; ?> >Día</option>
<?php
//----------------- Aquí preparo el bucle de 31 días
for($dn=1;$dn<32;$dn++)
//echo "<option value=\"$dn\">$dn</option>";
echo "<option value=\"$dn\"<?php if ($dianacimiento != \"\") echo ' selected=\"selected\"';>$dn</option>"; ?>
?>
</select>
¿Por qué no me muestra primero Día:? si lo dejo solo de esta manera si empieza por día, pero claro luego no mantiene la opción marcada:
Código PHP:
Ver originalecho "<option value=\"$dn\">$dn</option>";