Re: Ingresar fecha con combos en asp.
para agregar una fecha, a mi caso particular utilizo este metodo, a lo mejor pudiera servirte, uso Javascript para crear las fechas, en el sentido de grabacion, puedes utilizar el mismo metodo de El_Metallik (  )
los inputs que manejaran tanto los años, meses y dias Código PHP: <th colspan="3">Fecha<script type="text/javascript">document.onload=setTimeout("inicializar()", 0000);</script> <select id="years" name="years"></select> <select id="months" name="months" onBlur="poner('id6','years','months',0)" onChange="Cambia(document.getElementById('days'))"></select> <select id="days" name="days" onChange="poner('dates','years','months','days')"></select></th>
el input oculto donde pondras el orden que requieres de grabacion en la base Código PHP: <th><input id="dates" name="dates" type="hidden" />
ahora el script completo, gracias a Derkenuke, que reestructuro el codigo perfectamente Código PHP: <script language="JavaScript"> var a="Elegir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28"; var b="Elegir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29"; var c="Elegir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30"; var d="Elegir Dia,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31"; var e="Elegir Mes,Enero,Febrero,Marzo,Abril,Mayo,Junio,Julio,Agosto,Septiembre,Octubre,Noviembre,Diciembre"; var f="Elegir Año,2000,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013";
var mydate=new Date(); var year=mydate.getFullYear(); // full en vez de normal, el normal está en desuso var dia=mydate.getDay(); var mes=mydate.getMonth(); if (dia<10){dia="0"+dia;} if (mes<10){mes="0"+mes;} //if (year < 1000){year+=1900;} function addOpt(oCtrl, iPs, sTt, sVl){ var sOpcion=new Option(sTt, sVl); oCtrl.options[iPs]=sOpcion; return sOpcion; }
function esBisiesto(nAno){ var bRes = true; res = bRes && (nAno % 4 == 0); res = bRes && (nAno % 100 != 0); res = bRes || (nAno % 400 == 0); return bRes; } function inicializar(){ /*Este pedazo es para los ciclos ele=f.split(","); oCtrl=document.getElementById('cicloa'); while (oCtrl.length) oCtrl.remove(0); for (i=0;i<ele.length;i++){var nueva_opcion = addOpt(oCtrl, i, ele[i], ele[i]); if(ele[i]==year){nueva_opcion.selected = true;}} */ //este otro para los demas controles de fecha //años ele=f.split(","); oCtrl=document.getElementById('years'); while (oCtrl.length) oCtrl.remove(0); for (var i=0;i<ele.length;i++){ var nueva_opcion = addOpt(oCtrl, i, ele[i], ele[i]); if(ele[i]==year){nueva_opcion.selected = true;} } //meses ele=e.split(","); oCtrl=document.getElementById('months'); while (oCtrl.length) oCtrl.remove(0); for (var i=0;i<ele.length;i++){ var nueva_opcion = addOpt(oCtrl, i, ele[i], i); if( (i-1)==mes ){nueva_opcion.selected = true;} } //dias ele = esBisiesto(year) ? b : a; ele=ele.split(","); oCtrl=document.getElementById('days'); while (oCtrl.length) oCtrl.remove(0); for (var i=0;i<ele.length;i++){ var nueva_opcion = addOpt(oCtrl, i, ele[i], ele[i]); if(ele[i]==dia){nueva_opcion.selected = true;} } }
function Cambia(oCtrl) { var qmes, i=document.getElementById('months').selectedIndex; switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: qmes=d; break; case 4: case 6: case 9: case 11: qmes=c; break; case 2: qmes=esBisiesto(year)? b : a; break; default: qmes=false; } if( qmes ) { while (oCtrl.length) oCtrl.remove(0); ele=qmes.split(","); for(i=0;i<ele.length;i++) { addOpt(oCtrl, i, ele[i], ele[i]); } } } function poner(a,eta,ete,eto){ ja=document.getElementById(a); jb=document.getElementById(eta); jc=document.getElementById(ete); jd=document.getElementById(eto); switch(a){ case "id6": { if (jc.value <7) {ja.value=jb.value+"01";} else{ if (jc.value <13) {ja.value=jb.value+"02";} } // alert(ja.value); break;} case "dates": {ja.value=jb.value+"-"+jc.value+"-"+jd.value; // alert(ja.value); break;} }} </script>
ahora el orden lo puedes modificar en la funcion "PONER", mi caso año-mes-dia, espero les sirva a cualquiera que lo mire, cabe mencionar que lo que traerias para validacion seria el input DATES,
suerte
__________________ "Eres parte del problema, parte de la solucion o parte del paisaje" Un Saludo desde Desierto de Altar, Sonora, MX. Shiryu_libra |