Foros del Web » Programando para Internet » Javascript »

alguien me puede explicar el funcionamiento de este script??

Estas en el tema de alguien me puede explicar el funcionamiento de este script?? en el foro de Javascript en Foros del Web. Hola a todos, estoy trabajando con este calendario, pero no consigo entenderlo por completo, quiero hacer una consulta a la BD y si un dia ...
  #1 (permalink)  
Antiguo 25/11/2010, 11:34
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Pregunta alguien me puede explicar el funcionamiento de este script??

Hola a todos, estoy trabajando con este calendario, pero no consigo entenderlo por completo, quiero hacer una consulta a la BD y si un dia y un mes estan en la BD que me marque ese dia con un enlace, pero primero necesito saber su funcionamiento.
Código Javascript:
Ver original
  1. <script LANGUAGE="JavaScript">
  2.  
  3. <!-- Begin
  4. monthnames = new Array(
  5. "Enero",
  6. "Febrero",
  7. "Marzo",
  8. "Abril",
  9. "Mayo",
  10. "Junio",
  11. "Julio",
  12. "Agosto",
  13. "Septiembre",
  14. "Octubre",
  15. "Noviembre",
  16. "Diciembre");
  17. var linkcount=0;
  18. function addlink(month, day, href) {
  19. var entry = new Array(3);
  20. entry[0] = month;
  21. entry[1] = day;
  22. entry[2] = href;
  23. this[linkcount++] = entry;
  24. }
  25. Array.prototype.addlink = addlink;
  26. linkdays = new Array();
  27. monthdays = new Array(12);
  28. monthdays[0]=31;
  29. monthdays[1]=28;
  30. monthdays[2]=31;
  31. monthdays[3]=30;
  32. monthdays[4]=31;
  33. monthdays[5]=30;
  34. monthdays[6]=31;
  35. monthdays[7]=31;
  36. monthdays[8]=30;
  37. monthdays[9]=31;
  38. monthdays[10]=30;
  39. monthdays[11]=31;
  40. todayDate=new Date();
  41. thisday=todayDate.getDay();
  42. thismonth=todayDate.getMonth();
  43. thisdate=todayDate.getDate();
  44. thisyear=todayDate.getYear();
  45. thisyear = thisyear % 100;
  46. thisyear = ((thisyear < 50) ? (2000 + thisyear) : (1900 + thisyear));
  47. if (((thisyear % 4 == 0)
  48. && !(thisyear % 100 == 0))
  49. ||(thisyear % 400 == 0)) monthdays[1]++;
  50. startspaces=thisdate;
  51. while (startspaces > 7) startspaces-=7;
  52. startspaces = thisday - startspaces + 0;
  53. if (startspaces < 0) startspaces+=7;
  54. document.write('<table id="calendar" cellspacing="0" cellpadding="0" ');
  55. document.write("<caption><a href='#' title='previous month' class='nav'>&laquo;</a> "
  56. + monthnames[thismonth] + " " + thisyear
  57. + " <a href='#' title='siguiente mes' class='nav'>&raquo;</a></caption>");
  58. document.write("<tr>");
  59. document.write("<th scope='col'>Lu</th>");
  60. document.write("<th scope='col'>Ma</th>");
  61. document.write("<th scope='col'>Mi</th>");
  62. document.write("<th scope='col'>Ju</th>");
  63. document.write("<th scope='col'>Vi</th>");
  64. document.write("<th scope='col'>Sa</th>");
  65. document.write("<th scope='col'>Do</th>");
  66. document.write("</tr>");
  67. document.write("<tr>");
  68. for (s=0;s<startspaces;s++) {
  69. document.write("<td> </td>");
  70. }
  71. count=1;
  72. while (count <= monthdays[thismonth]) {
  73. for (b = startspaces;b<7;b++) {
  74. linktrue=false;
  75. document.write("<td");
  76. for (c=0;c<linkdays.length;c++) {
  77. if (linkdays[c] != null) {
  78. if ((linkdays[c][0]==thismonth + 1) && (linkdays[c][1]==count)) {
  79. document.write("><a href=\"" + linkdays[c][2] + "\">");
  80. linktrue=true;
  81.       }
  82.    }
  83. }
  84. if (count==thisdate) {
  85. document.write(" class='today'>" + count);
  86. }
  87. else{
  88. if (count <= monthdays[thismonth]) {
  89. document.write(">" + count);
  90. }
  91. else {
  92. document.write(" ");
  93. }
  94. }
  95. if (linktrue)
  96. document.write("</a>");
  97. document.write("</td>");
  98. count++;
  99. }
  100. document.write("</tr>");
  101. document.write("<tr>");
  102. startspaces=0;
  103. }
  104. document.write("</table></p>");
  105. // End -->
  106. </script>

espero me podais ayudar graciass!!
  #2 (permalink)  
Antiguo 25/11/2010, 12:38
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 19 años, 7 meses
Puntos: 9
Respuesta: alguien me puede explicar el funcionamiento de este script??

Hola.

Usa :

linkdays.addlink(month, day, href);


por ejemplo, para linkear el 3 de noviembre, usa :

linkdays.addlink(11, 3, "www.tudominio.com/tuscript.php");

Saludos

PD :

parece haber un error en el cierre de los TD porque imprime un ">" que me parece que no deberia estar.
  #3 (permalink)  
Antiguo 26/11/2010, 04:49
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: alguien me puede explicar el funcionamiento de este script??

muchas gracias! ahora yo saco de la BD un evento, dia mes y año, ¿como puedo hacer para linkear a la funcion el dia y mes para que me los muestre? ¿alguna idea?

gracias de nuevo!!
  #4 (permalink)  
Antiguo 26/11/2010, 06:27
 
Fecha de Ingreso: septiembre-2004
Ubicación: La Plata Argentina
Mensajes: 128
Antigüedad: 19 años, 7 meses
Puntos: 9
Respuesta: alguien me puede explicar el funcionamiento de este script??

Hola.

Como la pagina la construis en el servidor (PHP?), sacas los dias de la base de datos, esto antes de escribir el script del calendario, luego escribes la primer parte del script, hasta donde el script empieza a escribir el calendario (linea 54) y escribes alli una linea por cada dia donde deseas un link.

Por ejemplo en PHP :

echo( 'linkdays.addlink(11, 3, "www.tudominio.com/tuscript.php");' );

una linea por cada link.

Saludos
  #5 (permalink)  
Antiguo 26/11/2010, 10:17
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: alguien me puede explicar el funcionamiento de este script??

muchas gracias!! lo pruebo y te cuento! =D
  #6 (permalink)  
Antiguo 28/11/2010, 12:01
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: alguien me puede explicar el funcionamiento de este script??

creo que lo entendi bien, he probado con esto, pero no funciona:
Código PHP:
Ver original
  1. <?
  2. include("conexion_mysql.inc");
  3.  
  4. $conexion=mysql_connect($mysql_server,$mysql_login,$mysql_pass) or die ("Error en la conexion");
  5.  
  6. mysql_select_db("calendario",$conexion);
  7.  
  8. $diames = date(j);
  9.  
  10. $numeromes=date(n);
  11.  
  12. $sql="SELECT * FROM calendario where mes=".$numeromes;
  13.  
  14. $consulta=mysql_query($sql,$conexion);
  15.  
  16.  
  17. while($fila=mysql_fetch_row ($consulta)){
  18. echo( "linkdays.addlink(".$fila[2].",".$fila[1].", 'www.tudominio.com/tuscript.php');' );
  19. }
  20. ?>
Dejandolo asi:

Código Javascript:
Ver original
  1. <script LANGUAGE="JavaScript">
  2.  
  3. <!-- Begin
  4. monthnames = new Array(
  5. "Enero",
  6. "Febrero",
  7. "Marzo",
  8. "Abril",
  9. "Mayo",
  10. "Junio",
  11. "Julio",
  12. "Agosto",
  13. "Septiembre",
  14. "Octubre",
  15. "Noviembre",
  16. "Diciembre");
  17. var linkcount=0;
  18. function addlink(month, day, href) {
  19. var entry = new Array(3);
  20. entry[0] = month;
  21. entry[1] = day;
  22. entry[2] = href;
  23. this[linkcount++] = entry;
  24. }
  25. Array.prototype.addlink = addlink;
  26. linkdays = new Array();
  27. monthdays = new Array(12);
  28. monthdays[0]=31;
  29. monthdays[1]=28;
  30. monthdays[2]=31;
  31. monthdays[3]=30;
  32. monthdays[4]=31;
  33. monthdays[5]=30;
  34. monthdays[6]=31;
  35. monthdays[7]=31;
  36. monthdays[8]=30;
  37. monthdays[9]=31;
  38. monthdays[10]=30;
  39. monthdays[11]=31;
  40. todayDate=new Date();
  41. thisday=todayDate.getDay();
  42. thismonth=todayDate.getMonth();
  43. thisdate=todayDate.getDate();
  44. thisyear=todayDate.getYear();
  45. thisyear = thisyear &#37; 100;
  46. thisyear = ((thisyear < 50) ? (2000 + thisyear) : (1900 + thisyear));
  47. if (((thisyear % 4 == 0)
  48. && !(thisyear % 100 == 0))
  49. ||(thisyear % 400 == 0)) monthdays[1]++;
  50. startspaces=thisdate;
  51. while (startspaces > 7) startspaces-=7;
  52. startspaces = thisday - startspaces + 0;
  53. if (startspaces < 0) startspaces+=7;
  54. <?
  55. include("conexion_mysql.inc");
  56.  
  57. $conexion=mysql_connect($mysql_server,$mysql_login,$mysql_pass) or die ("Error en la conexion");
  58.  
  59. mysql_select_db("calendario",$conexion);
  60.  
  61. $diames = date(j);
  62.  
  63. $numeromes=date(n);
  64.  
  65. $sql="SELECT * FROM calendario where mes=".$numeromes;
  66.  
  67. $consulta=mysql_query($sql,$conexion);
  68.  
  69.  
  70. while($fila=mysql_fetch_row ($consulta)){
  71. echo( "linkdays.addlink(".$fila[2].",".$fila[1].", 'www.tudominio.com/tuscript.php');' );
  72. }
  73.  
  74. ?>
  75. document.write('<table id="calendar" cellspacing="0" cellpadding="0" ');
  76. document.write("<caption><a href='#' title='previous month' class='nav'>&laquo;</a> "
  77. + monthnames[thismonth] + " " + thisyear
  78. + " <a href='#' title='siguiente mes' class='nav'>&raquo;</a></caption>");
  79. document.write("<tr>");
  80. document.write("<th scope='col'>Lu</th>");
  81. document.write("<th scope='col'>Ma</th>");
  82. document.write("<th scope='col'>Mi</th>");
  83. document.write("<th scope='col'>Ju</th>");
  84. document.write("<th scope='col'>Vi</th>");
  85. document.write("<th scope='col'>Sa</th>");
  86. document.write("<th scope='col'>Do</th>");
  87. document.write("</tr>");
  88. document.write("<tr>");
  89. for (s=0;s<startspaces;s++) {
  90. document.write("<td> </td>");
  91. }
  92. count=1;
  93. while (count <= monthdays[thismonth]) {
  94. for (b = startspaces;b<7;b++) {
  95. linktrue=false;
  96. document.write("<td");
  97. for (c=0;c<linkdays.length;c++) {
  98. if (linkdays[c] != null) {
  99. if ((linkdays[c][0]==thismonth + 1) && (linkdays[c][1]==count)) {
  100. document.write("><a href=\"" + linkdays[c][2] + "\">");
  101. linktrue=true;
  102.       }
  103.    }
  104. }
  105. if (count==thisdate) {
  106. document.write(" class='today'>" + count);
  107. }
  108. else{
  109. if (count <= monthdays[thismonth]) {
  110. document.write(">" + count);
  111. }
  112. else {
  113. document.write(" ");
  114. }
  115. }
  116. if (linktrue)
  117. document.write("</a>");
  118. document.write("</td>");
  119. count++;
  120. }
  121. document.write("</tr>");
  122. document.write("<tr>");
  123. startspaces=0;
  124. }
  125. document.write("</table></p>");
  126. // End -->
  127. </script>

Donde esta el fallo?
  #7 (permalink)  
Antiguo 28/11/2010, 12:03
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: alguien me puede explicar el funcionamiento de este script??

ya lo solucione!! funciona perfecto!! el problema estaba en esta linea

echo( "linkdays.addlink(".$fila[2].",".$fila[1].", 'www.tudominio.com/tuscript.php');' );
me fallaba la ultima comilla simple quedando asi
echo( "linkdays.addlink(".$fila[2].",".$fila[1].", 'www.tudominio.com/tuscript.php');" );

Ahora si alguien me pudiese decir como hacer para que al darle a la flecha de más mes, pase al mes siguiente.

Gracias!!!!
  #8 (permalink)  
Antiguo 30/11/2010, 12:42
 
Fecha de Ingreso: abril-2010
Mensajes: 62
Antigüedad: 14 años
Puntos: 0
Respuesta: alguien me puede explicar el funcionamiento de este script??

por favor que alquien me explique como puedo hacer para que al darle a la flecha de avance de mes pase al siguiente mes, la idea la tengo, con una funcion que diga thismonth=thismonth +1 pero no se como estructurarlo ni donde llamar a la funcion, ayuda pliss!!!

Etiquetas: funcionamiento
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 21:24.