Foros del Web » Programando para Internet » Javascript »

Marcar dias en un calendario

Estas en el tema de Marcar dias en un calendario en el foro de Javascript en Foros del Web. Hola. Estoy haciendo un calendario de estos minis que aparecen en muchas web, ya lo tengo hecho y funciona bien, pero me he encontrado con ...
  #1 (permalink)  
Antiguo 28/02/2010, 14:12
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 18 años
Puntos: 32
Marcar dias en un calendario

Hola.

Estoy haciendo un calendario de estos minis que aparecen en muchas web, ya lo tengo hecho y funciona bien, pero me he encontrado con algo que no como avanzar, a ver si me explico.

Desde php, recojo las fechas de la base datos y se lo paso al script para que me lo marque en el calendario, para ello uso el siguiente código

Código PHP:
function marcar_dia1(marca_dia,marca_mes,marca_anio)
    {
    
mes_seleccionado=document.getElementById(name_select_mes).value
    anio_seleccionado
=document.getElementById(name_calendario_anio).value;

    if (
marca_mes==mes_seleccionado && marca_anio==anio_seleccionado)
        {
        
document.getElementsByName(name_dia)[marca_dia-1].style.fontWeight='bold';
        
document.getElementsByName(name_dia)[marca_dia-1].style.fontSize='12';
        
document.getElementsByName(name_dia)[marca_dia-1].style.color='#ff0000';
        
document.getElementsByName(name_dia)[marca_dia-1].style.border='1px solid #ff0000';
        
document.getElementsByName(name_dia)[marca_dia-1].style.background='#cccccc';
        }

     } 
Esto me funciona correctamante, me lo marca y queda muy bonito y todo eso... pero cuando paso de mes se elimina todo.

He pensado que desde php con un while le pase todas las fechas y que lo almacene en un array de javascript, para luego usarlo desde cualquier otro evento por ejemplo algo asi

1 (10,2,2010)
2 (12,4,2010)
3 (11,4,2010)

pero no se como hacer ese array. ¿Alguien me puede orientar o decirme alguna otra idea? me he quedado atascado aquí y no he podido continuar.
  #2 (permalink)  
Antiguo 28/02/2010, 16:44
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años
Puntos: 6
Respuesta: Marcar dias en un calendario

Buenas,

Porque no lo marcas directamente desde PHP? Tan solo tienes que escribir el tag con las propiedades que quieres si se tiene que marcar y sin propiedades (o con otras) si no se tiene que marcar? Aunque esto sólo te lo recomiendo si el cambio de mes lo haces con PHP. Si es con JS, efectivamente, lo que yo haría sería pasar un array y comprobar las fechas.

EDITO: Para hacer el array, lo puedes hacer desde PHP:
Código PHP:
Ver original
  1. <?php
  2. echo 'var diasMarcados = new Array();';
  3. foreach( $diasAMarcar as $dia ) echo 'diasMarcados.push( "'.$dia.'" );';
  4. ?>

Saludos
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM
  #3 (permalink)  
Antiguo 01/03/2010, 04:26
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 18 años
Puntos: 32
Respuesta: Marcar dias en un calendario

Cita:
Iniciado por genuine_carlosV2 Ver Mensaje
Buenas,

Porque no lo marcas directamente desde PHP? Tan solo tienes que escribir el tag con las propiedades que quieres si se tiene que marcar y sin propiedades (o con otras) si no se tiene que marcar? Aunque esto sólo te lo recomiendo si el cambio de mes lo haces con PHP. Si es con JS, efectivamente, lo que yo haría sería pasar un array y comprobar las fechas.

EDITO: Para hacer el array, lo puedes hacer desde PHP:
Código PHP:
Ver original
  1. <?php
  2. echo 'var diasMarcados = new Array();';
  3. foreach( $diasAMarcar as $dia ) echo 'diasMarcados.push( "'.$dia.'" );';
  4. ?>

Saludos
Probaré esto que me dices, lo tengo que hacer desde javascript porque el cambio de mes lo hago desde ahí, una vez que le paso los datos de php se pierde cuando cambio de fecha.

pero despues, como recupero los datos desde javascript ?? eso no me ha quedado muy claro .

Gracias.
  #4 (permalink)  
Antiguo 01/03/2010, 05:32
Avatar de genuine_carlosV2  
Fecha de Ingreso: noviembre-2008
Ubicación: 127.0.0.1
Mensajes: 296
Antigüedad: 16 años
Puntos: 6
Respuesta: Marcar dias en un calendario

Para recuperar los datos es igual que si hubieses creado el array con JS directamente. Te invito a que ejecutes ese código y, luego, en la página web, des a 'Ver código fuente' y lo analices. Verás que JS ve la creación de un array como se se hubiese echo manualmente.

Ejecuta y analiza. Para llamar a cada elemento, tan solo tienes que hacer 'diasMarcados[ X ]' donde X es un valor de dentro del array. Por ejemplo, 'alert( diasMarcados[ 0 ] );' te mostrará el valor del primer día marcado.

Saludos
__________________
Carlos

Recoger datos es solo el primer paso hacia la sabiduría. Pero compartir información es el primer paso hacia la comunidad. - IBM

Etiquetas: calendario, dias
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:44.