<form action="respuesta_problema.php" method="post" name="form" target="_new">
<table width="26%" border="0">
<!--PARA LOS AÑOS -->
<tr>
<td width="30%">Ingrese Año:</td>
<td width="70%"><label for="año"></label>
<select name="año">
<?php
//UTILIZO UN FOR PARA LLENAR EL AÑO:
$numero_años=2013-1920;
$lista_años=2013;
for($i=0; $i<=$numero_años; $i++)
{
$año[$i]=$lista_años;
$lista_años--;
}
//UTILIZO UN FOR PARA RECORRE EL AÑO
for($k=0; $k<=count($año); $k++)
{
?>
<option value="<?php echo $año[$k]; ?>"><?php echo $año[$k];?></option>
<?php
}
?>
</select> </td>
</tr>
<!--PARA LOS MESES-->
<?php
$mes[0]="Enero";
$mes[1]="Febrero";
$mes[2]="Marzo";
$mes[3]="Abril";
$mes[4]="Mayo";
$mes[5]="Junio";
$mes[6]="Julio";
$mes[7]="Agosto";
$mes[8]="Setiembre";
$mes[9]="Octubre";
$mes[10]="Nomviembre";
$mes[11]="Diciembre";
?>
<tr>
<td>Ingrese Mes:</td>
<td><label for="mes"></label>
<select name="mes" id="mes">
<?php
for($i=0; $i<=count($mes); $i++)
{
?>
<option value="<?php echo $mes[$i]; ?>" title="<?php echo $mes[$i]; ?>"><?php echo $mes[$i]; ?></option>
<?php
}
?>
</select></td>
</tr>
<!--PARA LOS DIAS -->
<tr>
<td>Ingrese Día:</td>
<td><label for="dias"></label>
<select name="dias">
<?php
if($mes[0]="Enero" and $mes[2]="Marzo" and $mes[4]="Mayo" and $mes[6]="Julio" and $mes[7]="Agosto" and $mes[8]="Octubre" and $mes[11]="Diciembre")
{
for($j=1; $j<=31; $j++)
{
?>
<option value="<?php echo $j; ?>"><?php echo $j; ?></option>
<?php
}
}
else
{
for($j=1; $j<=30; $j++)
{
?>
<option value="<?php echo $j; ?>"><?php echo $j; ?></option>
<?php
}
}
?>
</select>
</td>
</tr>
</table>
</form>
![Foto](http://www.gravatar.com/avatar/faa96fc1c40f280f6ffebab25d1afde8?s=100&d=http%3A%2F%2Fdelphiaccess.com%2Fforos%2Fpublic%2Fstyle_images%2Fmaster%2Fprofile%2Fdefault_large.png)
Condición if que no se ejecuta
Comenzado por
danieljg
, may 27 2013 01:01
2 respuestas en este tema
#1
Escrito 27 mayo 2013 - 01:01
De este codigo los dos primeros select funcionan pero el ultimo no. quiero que al seleccionar el mes me de como resultado en el select de abajo la cantidad respectiva de dias de dicho mes. por lo visto la condicion del if no esta funcionando como debe. Como lo puedo hacer. Ahhhh... pero tengo que utilizar arreglos, asi como lo eh estado haciendo. Gracias por su ayuda....
#2
Escrito 27 junio 2013 - 11:38
Así como una solución por parte de php, lo que yo realice fue que en el evento onchange de los select mes y anio, se realice un envío del formulario y según está información se cargan los días, tendiendo una pequeña validación para los años bisiestos, donde los días de febrero llegan a 29, si no me equivoco. xD
Pero si quieres una solución sin recargar la página, tendría que ser más por el lado de javascript o jquery en su defecto.
Espero que el código te pueda ayudar de alguna manera.
Pero si quieres una solución sin recargar la página, tendría que ser más por el lado de javascript o jquery en su defecto.
Espero que el código te pueda ayudar de alguna manera.
<?php //print "<pre>";print_r($_POST);print "</pre>";?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin título</title>
</head>
<body>
<form method="post" name="form" id="form" action="<?php echo $_SERVER['PHP_SELF'];?>">
<table width="26%" border="0">
<!--PARA LOS AÑOS -->
<tr>
<td width="30%">Ingrese Año:</td>
<td width="70%">
<label for="anio"></label>
<select name="anio" onchange="document.getElementById('form').submit();">
<?php
for($k=2013;$k > 1919;$k--){
if(empty($_POST['anio'])){
$_POST['anio'] = 2013;
}
if($_POST['anio'] == $k){
$selectedAnio = "selected='selected'";
}else{
$selectedAnio = "";
}
?>
<option <?php echo $selectedAnio;?> value="<?php echo $k;?>"><?php echo $k;?></option>
<?php
}
?>
</select>
</td>
</tr>
<!--PARA LOS MESES-->
<?php
$mes[0]="Enero";
$mes[1]="Febrero";
$mes[2]="Marzo";
$mes[3]="Abril";
$mes[4]="Mayo";
$mes[5]="Junio";
$mes[6]="Julio";
$mes[7]="Agosto";
$mes[8]="Setiembre";
$mes[9]="Octubre";
$mes[10]="Noviembre";
$mes[11]="Diciembre";
$mes_dias[0]=31;
$mes_dias[1]=28;
if((!($_POST['anio']%4) && ($_POST['anio']%100)) || !($_POST['anio']%400)){
$mes_dias[1] = 29;
}else{
$mes_dias[1]=28;
}
$mes_dias[2]=31;
$mes_dias[3]=30;
$mes_dias[4]=31;
$mes_dias[5]=30;
$mes_dias[6]=31;
$mes_dias[7]=31;
$mes_dias[8]=30;
$mes_dias[9]=31;
$mes_dias[10]=30;
$mes_dias[11]=31;
?>
<tr>
<td>Ingrese Mes:</td>
<td>
<label for="mes"></label>
<select name="mes" id="mes" onchange="document.getElementById('form').submit();">
<?php
for($i=0; $i<count($mes); $i++){
if($_POST['mes'] == $i){
$selectedMes = "selected='selected'";
}else{
$selectedMes = "";
}
?>
<option <?php echo $selectedMes;?>value="<?php echo $i; ?>" title="<?php echo $mes[$i]; ?>"> <?php echo $mes[$i];?></option>
<?php
}
?>
</select>
</td>
</tr>
<!--PARA LOS DIAS -->
<tr>
<td>Ingrese Día:</td>
<td>
<label for="dias"></label>
<select name="dias">
<?php
if(!empty($_POST['mes'])){
$indice_mes = $_POST['mes'];
}else{
$indice_mes = 0;
}
for($j=1; $j<=$mes_dias[$indice_mes]; $j++){
if($_POST['dias'] == $j){
$selectedDia = "selected='selected'";
}else{
$selectedDia = "";
}
?>
<option <?php echo $selectedDia;?>value="<?php echo $j; ?>"><?php echo $j; ?></option>
<?php
}
?>
</select>
</td>
</tr>
</table>
</form>
</body>
</html>
#3
Escrito 27 junio 2013 - 12:57
Amigo danieljg, bienvenido a esta tu casa DelphiAccess... ![(y)](http://delphiaccess.com/foros/public/style_emoticons/default/17.gif)
Me he permitido editar el título de tu hilo para que sea más descriptivo con el contenido del mismo. Títulos como AYUDA, URGENTE, NO ENTIENDO, DUDA y cosas por el estilo, no ayudan mucho a mantener una búsqueda funcional en cuanto a los temas que se publican aquí...
Saludox !
![(y)](http://delphiaccess.com/foros/public/style_emoticons/default/17.gif)
Me he permitido editar el título de tu hilo para que sea más descriptivo con el contenido del mismo. Títulos como AYUDA, URGENTE, NO ENTIENDO, DUDA y cosas por el estilo, no ayudan mucho a mantener una búsqueda funcional en cuanto a los temas que se publican aquí...
Saludox !
![:)](http://delphiaccess.com/foros/public/style_emoticons/default/27.gif)