Foros del Web » Programando para Internet » Javascript »

duda de novato

Estas en el tema de duda de novato en el foro de Javascript en Foros del Web. Muy buenas de nuevo y muchisimas gracias de antemano por vuestra ayuda. Estoy empezando a programar en javascript y me asalta una duda. Tengo un ...
  #1 (permalink)  
Antiguo 17/12/2010, 04:08
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 9 meses
Puntos: 4
duda de novato

Muy buenas de nuevo y muchisimas gracias de antemano por vuestra ayuda.

Estoy empezando a programar en javascript y me asalta una duda. Tengo un script
Código Javascript:
Ver original
  1. <script languaje="JavaScript">
  2.  
  3. var mydate=new Date()
  4. var year=mydate.getYear()
  5. if (year < 1000)
  6. year+=1900
  7. /*var day=mydate.getDay()*/
  8. var month=mydate.getMonth()
  9. var daym=mydate.getDate()
  10. if (daym<10)
  11. daym="0"+daym
  12. /*var dayarray=new Array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sabado")*/
  13. var montharray=new Array("01","02","03","04","05","06","07","08","09","10","11","12")
  14. </small>")
  15.  
  16. </script>
que te dice el mes actual y el año.

Deseo dibujarlo en un select option html, para ello
Código HTML:
Ver original
  1. <select name="mes" size="1">
  2. <option value="mes"><script>document.write("<small><font color='000080' face='Arial'>"+montharray[month]+"</font></small>")
¿Cómo puedo rellenar el combo con los meses restantes?

Gracias y un saludo a todos!
  #2 (permalink)  
Antiguo 17/12/2010, 06:15
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: duda de novato

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script languaje="JavaScript">
  5. //si se usa
  6. var mifecha=new Date();
  7. //no se usa
  8. var mianno=mifecha.getYear();
  9. if (mianno < 1000) mianno+=1900;
  10. //si se usa
  11. //mimes = 0 Enero...11 Diciembre
  12. var mimes=mifecha.getMonth();
  13. //no se usa
  14. var midia=mifecha.getDate();
  15. if (midia<10) midia="0"+midia;
  16. //si se usa
  17. var montharray=new Array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Set","Oct","Nov","Dic");
  18. var opciones="";
  19. for(m=0;m<12;m++){
  20.  opciones+="<option value='"+m+"' "+selMesActual(m)+">"+montharray[m]+"</option>";
  21. }
  22.  
  23. function selMesActual(mes){
  24.     if (mimes==mes){
  25.         return "selected='selected'";
  26.     }else{
  27.         return "";
  28.     }
  29. }
  30.  
  31. </head>
  32.  
  33. <select name="mes" id="mes">
  34. <script>document.write(opciones);</script>
  35. </body>
  36. </html>


Te parece bien?
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 17/12/2010, 06:24
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: duda de novato

Muchísimas gracias por tu ayuda voy a probarlo gracias!!!
  #4 (permalink)  
Antiguo 20/12/2010, 02:18
 
Fecha de Ingreso: agosto-2010
Mensajes: 202
Antigüedad: 13 años, 9 meses
Puntos: 4
Respuesta: duda de novato

muy buenas de nuevo, este script va muy bien, pero si quiero reutilizarlo para el año porqué no me funciona????

Código Javascript:
Ver original
  1. var annoarray=new Array("2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021");
  2. var opciones2="";
  3. for(a=0;a<12;a++){
  4. opciones2+="<option value='"+a+"' "+selAnActual(a)+">"+annoarray[a]+"</option>";
  5. }
  6. function selAnActual(anno){
  7. if (mianno==anno){
  8. return "selected='selected'";
  9. }else{
  10. return "";
  11. }
  12. }


me muestra el array de años correctamente pero no m,e queda marcado el actual como en el mes.

me toma valores distintos y no se porqué... el año actual es 2010 y me toma el último valor del array 2021.

Gracias por vuestra ayuda!!!

saludos!!!


creo que con esto funciona
Código Javascript:
Ver original
  1. //si se usa
  2. var yeararray=new Array("2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021");
  3. var opciones2="";
  4. for(a=0;a<12;a++){
  5. opciones2+="<option value='"+a+"' "+selannoActual(a)+">"+yeararray[a]+"</option>";
  6. }
  7. function selannoActual(anno){
  8. if (mianno==yeararray[a]){
  9. return "selected='selected'";
  10. }else{
  11. return "";
  12. }
  13. }

Última edición por edgar4615; 20/12/2010 a las 03:12
  #5 (permalink)  
Antiguo 21/12/2010, 02:26
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 2 meses
Puntos: 574
Respuesta: duda de novato

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script languaje="JavaScript">
  5. //si se usa
  6. var mifecha=new Date();
  7. //ahora si se usa!!!!
  8. var mianno=mifecha.getYear();
  9. if (mianno < 1000) mianno+=1900;
  10. //si se usa
  11. //mimes = 0 Enero...11 Diciembre
  12. var mimes=mifecha.getMonth();
  13. //no se usa
  14. var midia=mifecha.getDate();
  15. if (midia<10) midia="0"+midia;
  16. //si se usa
  17. var montharray=new Array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Set","Oct","Nov","Dic");
  18. var annoarray=new Array("2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021");
  19. var opciones="";
  20. var opciones2="";
  21. for(m=0;m<12;m++){
  22.  opciones+="<option value='"+m+"' "+selMesActual(m)+">"+montharray[m]+"</option>";
  23. }
  24.  
  25. for(a=0;a<12;a++){
  26. opciones2+="<option value='"+a+"' "+selAnActual(a)+">"+annoarray[a]+"</option>";
  27. }
  28. function selMesActual(mes){
  29.     if (mimes==mes){
  30.         return "selected='selected'";
  31.     }else{
  32.         return "";
  33.     }
  34. }
  35. function selAnActual(anno){
  36.     if (mianno==anno){
  37.         return "selected='selected'";
  38.     }else{
  39.         return "";
  40.     }
  41. }
  42. </head>
  43.  
  44. <select name="mes" id="mes">
  45. <script>document.write(opciones);</script>
  46. <select name="anno" id="anno">
  47. <script>document.write(opciones2);</script>
  48. </body>
  49. </html>

Si funciona...

Tu ultima opción no es muy correcta ya que estas usando la variable a como si fuera global, en realidad lo es, pero solo se ha declarado para usarse como iterador en el buclue "for", yo lo consideraria una mala practica. Ademas el parametro "anno" de la función "selAnActual(anno)" dejaria de tener sentido, la funcion solo funcionaria si es llamada por el bucle "for" ....

De hecho esas funciones ón poco reutilizables esta seria una opción más compacta...

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script languaje="JavaScript">
  5. //si se usa
  6. var mifecha=new Date();
  7. //si se usa
  8. var mianno=mifecha.getYear();
  9. if (mianno < 1000) mianno+=1900;
  10. //si se usa
  11. //mimes = 0 Enero...11 Diciembre
  12. var mimes=mifecha.getMonth();
  13. //no se usa
  14. var midia=mifecha.getDate();
  15. if (midia<10) midia="0"+midia;
  16. //si se usa
  17. var montharray=new Array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Set","Oct","Nov","Dic");
  18. var annoarray=new Array("2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021");
  19. var opciones="";
  20. var opciones2="";
  21. for(var m=0;m<12;m++){
  22.  opciones+="<option value='"+m+"' ";
  23.    if (mimes==m){
  24.        opciones+="selected='selected'";
  25.    }
  26.  opciones+=">"+montharray[m]+"</option>";
  27. }
  28.  
  29. for(var a=0;a<12;a++){
  30.     opciones2+="<option value='"+a+"' ";
  31.     if (mianno==annoarray[a]){
  32.         opciones2+="selected='selected'";
  33.    }
  34.     opciones2+=">"+annoarray[a]+"</option>";
  35. }
  36.  
  37. </head>
  38.  
  39. <select name="mes" id="mes">
  40. <script>document.write(opciones);</script>
  41. <select name="anno" id="anno">
  42. <script>document.write(opciones2);</script>
  43. </body>
  44. </html>

Y esta seria otra en formato funciones....

Código HTML:
Ver original
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <title>Documento sin t&iacute;tulo</title>
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
  4. <script languaje="JavaScript">
  5. function selMes(){
  6. var mifecha=new Date();
  7. var mimes=mifecha.getMonth();
  8. //mimes = 0 Enero...11 Diciembre
  9. var montharray=new Array("Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Set","Oct","Nov","Dic");
  10. var opciones="";
  11. for(var m=0;m<12;m++){
  12.  opciones+="<option value='"+m+"' ";
  13.    if (mimes==m){
  14.        opciones+="selected='selected'";
  15.    }
  16.  opciones+=">"+montharray[m]+"</option>";
  17. }
  18. return opciones;
  19. }
  20.  
  21. function selAnno(){
  22. var mifecha=new Date();
  23. var mianno=mifecha.getYear();
  24. if (mianno < 1000) mianno+=1900;
  25. var annoarray=new Array("2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021");
  26. var opciones="";
  27. for(var a=0;a<12;a++){
  28.     opciones+="<option value='"+a+"' ";
  29.     if (mianno==annoarray[a]){
  30.         opciones+="selected='selected'";
  31.    }
  32.     opciones+=">"+annoarray[a]+"</option>";
  33. }
  34. return opciones;
  35. }
  36. </head>
  37.  
  38. <select name="mes" id="mes">
  39. <script>document.write(selMes());</script>
  40. <select name="anno" id="anno">
  41. <script>document.write(selAnno());</script>
  42. </body>
  43. </html>
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 21/12/2010 a las 02:42

Etiquetas: Ninguno
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 00:09.