Jump to content


Photo

Condición if que no se ejecuta


  • Please log in to reply
2 replies to this topic

#1 danieljg

danieljg

    Newbie

  • Miembros
  • Pip
  • 1 posts

Posted 27 May 2013 - 01:01 AM

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....


<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>

  • 0

#2 Sephiroth_801

Sephiroth_801

    Member

  • Miembros
  • PipPip
  • 26 posts

Posted 27 June 2013 - 11:38 AM

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.

<?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>




  • 0

#3 Fenareth

Fenareth

    Advanced Member

  • Administrador
  • 3486 posts
  • LocationMexico City

Posted 27 June 2013 - 12:57 PM

Amigo danieljg, bienvenido a esta tu casa DelphiAccess... (y)

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 ! :)
  • 0




IP.Board spam blocked by CleanTalk.