Ayuda con problema en PHP

Publicado en 'Programación' por Pucpy, 11 Ago 2011.





  1. Pucpy

    Pucpy Miembro maestro

    Registro:
    29 Dic 2010
    Mensajes:
    895
    Likes:
    62




    Hola muchachos que tal, tengo la siguiente tarea que hacer, aver si me ayuda:

    Tengo que crear un formulario que me permita escoger un mes y un año especificos, estaba pensando en mostrar un menu desplegable en cada campo "mes" y "año" osea que salga una cajita al lado del mes, y salga un menu despegable con los 12 meses del año e igual para el año (en este caso que salgan años del 1950 - 2020).
    Luego con ambos datos, necesito mostrat un calendario, que sea del mes y del año escogidos, como hago esa tabalita para que sea parecida a un calendaria?

    Espero su ayuda!
    Graciass
     


  2. initiald

    initiald Miembro frecuente

    Registro:
    12 Jun 2010
    Mensajes:
    142
    Likes:
    19
    Sin aplicar POO en PHP de forma estructurara o como te venga a la mente por así decirlo.

    Primero para mostrar el mes y año puedes utilizar lista tipo menu o combobox, donde mediante un bucle FOR generes los rangos asi no tendras que estar copiando y pegando el codigo HTML, obviamente este tiene que estar dentro del FORM HTML.

    Luego para el caso del calendario puedes utilizar un array, como no especifica tu problema si es año biciesto o no entonces obviaremos esa parte y nos concentramos simplemente en que meses terminan en 31,30,28.

    En el array lo llena con el Mes y Maximo dia que caeria, osea crearias un array de 12 una idea.

    $arrmes = array(1 => 31, 2 => 28);

    donde 1 seria enero y 2 seria febrero, ya los demás meses lo escribes tu.

    Luego de esto simplemente te quedaría generar mediante un bucle FOR los dias de ese mes y el limite de dias del for lo tomarias del array segun la variable post que recibirias del formulario, para generar la tabla puedes utilizar echo, si quieres limitar las columnas puedes hacer que cada múltiplo de 6 de un salto <tr>.

    Una idea rápida que ya puedes depurar y mejorar:

    PD. Cualquier duda no dudes en consultar para aclarártela, como veras no te doy la solución porque la idea es que aprendas y investigues sobre el tema, puedes ir colocando tus soluciones y seguramente muchos de acá te ayudaran a corregirlo.
     
    Última edición: 12 Ago 2011
  3. Pucpy

    Pucpy Miembro maestro

    Registro:
    29 Dic 2010
    Mensajes:
    895
    Likes:
    62
    Tengo una duda, estoy haciendo el modulo principal en html, quiero hacer el menu despegable y se q se hace con select multiple, pero el problema es el siguiente, com hago para poner las opciones de ese menu si es que esas opciones las tengo en un array en php?
    Es decir,he creado un archivo php aparte con un array $mes, en el cual estan todos los meses, y quiero sacar de ese array los meses uno por uno y mostrarlos como opciones en el menu despegable. Alguien?

    ----- mensaje añadido, 12-ago-2011 a las 03:10 -----

    Bueno e creado el formulario para ingresar el mes y año, diganme profa si esta bien!:

    <html>

    <head>
    <title>Trabajo Final: Calendario</title>
    </head>

    <body>
    <form action = "proc_Calendario.php" method = "post">
    <table width = "100" border = "0" align = "center" cellpadding = "5" cellspacing = "10">
    <caption><strong><font size = "5">Elegir mes y año</font></strong></caption>
    <tr>
    <th align = "left"> Mes </th>
    <td>
    <select name = "mes">
    <?php
    include 'meses.php';
    reset($ar_meses);
    while (list($clave,$valor) = each($ar_meses)){
    ?>
    <option> <?php echo $valor; ?>
    <?php } ?>
    </select>
    </td>
    </tr>
    <tr>
    <th align = "left">Año</th>
    <td>
    <select name = "anios">
    <?php
    include 'meses.php';
    reset($ar_anios);
    while (list($clave,$valor) = each($ar_anios)) {
    ?>
    <option> <?php echo $valor; ?>
    <?php } ?>
    </select>
    </td>
    </tr>
    </table>
    </form>
    </body>

    </html>

    ----- mensaje añadido, 12-ago-2011 a las 03:42 -----

    muchachos, bueno ya hice el formulario, y en un archivo aparte voy a aprocesar y mostrar el calendario, alguien me podria ayudar como hacerlo?
    Ya tengo el mes y el año, ahora como armo el calendario?
     
  4. initiald

    initiald Miembro frecuente

    Registro:
    12 Jun 2010
    Mensajes:
    142
    Likes:
    19
    Hola aca corregi un poco tu codigo HTML, a la ves te puse como recorrer un array mediante ForEach que es mas simple y mediante echos puedes plasmar todo, cuando utilizas includes que sea antes de iniciar el HTML aun que para este caso suficiente con declarar el array antes del HTML, los nombres de las listas son cb_month y cb_year que las capturaras en tu otra pagina php.


    index.php

    proc_Calendario.php
    PD. Solo te quedaria completar los meses en el array con los dias maximos y los numeros que correspondan en cada archivo php.
     
    Última edición: 12 Ago 2011
  5. Pucpy

    Pucpy Miembro maestro

    Registro:
    29 Dic 2010
    Mensajes:
    895
    Likes:
    62
    gracias por tu ayuda, pero tengo una duda, como sabes que dia cae lunes, amrtes y asi... ?
    porque no todos los meses son iguales, por ejemplo, el enero del 2010 no es igual al del 1958.
    Tu codigo hace que siempre el primer dia caiga lunes, hay alguna manera sabiendo el mes y el año, saber que dia cae el 1° de ese mes en ese año?
     
    Última edición: 12 Ago 2011
  6. initiald

    initiald Miembro frecuente

    Registro:
    12 Jun 2010
    Mensajes:
    142
    Likes:
    19
    Bueno para saber el dia de la semana necesitas utilizar el "Algoritmo Doomsday", como te percataras ya te plasme el algoritmo en php de una de las variantes, puedes buscar otras variantes para practicar si deseas con mas parametros que permitan una mejor presicion.

    Aca te dejo el articulo del "Algoritmo de Doomsday".

    http://es.wikipedia.org/wiki/Algoritmo_para_calcular_el_día_de_la_semana

     
    Última edición: 12 Ago 2011