Foros del Web » Programando para Internet » ASP Clásico »

Ingresar fecha con combos en asp.

Estas en el tema de Ingresar fecha con combos en asp. en el foro de ASP Clásico en Foros del Web. salu2, necesito saber como ingresar fechas con tres combos distintos desde asp uno para el dia otro para los meses y otro con años o ...
  #1 (permalink)  
Antiguo 21/09/2007, 14:04
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Ingresar fecha con combos en asp.

salu2, necesito saber como ingresar fechas con tres combos distintos desde asp uno para el dia otro para los meses y otro con años o algun javascript chevere que me permita coger la fecha y guardarla facilmente en una base en access y despues consultarla y modifcarla y todo eso, espero de verdad alguien me ayude porque es super urgente!

gracias!
  #2 (permalink)  
Antiguo 21/09/2007, 17:21
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
Re: Ingresar fecha con combos en asp.

depende como quieres guardar la fecha pero suponiendo que quieres el formato dd/mm/aaaa seria algo asi

1.- Creas los 3 combos llamados dia, mes y anho con los datos necesarios en cada uno y el formulario enviarlo por post
2.- En la pagina que procesa el formulario pones

Código:
dia = Request.Form("dia")
mes = Request.Form("mes")
anho = Request.Form("anho")

fecha = dia&"/"&mes&"/"&anho

'sentencia sql para guardar los datos
Espero te sirva, lo de los formatos de fecha lo puedes cambiar cambiando el orden de las variables.

A lo otro importante es que el campo fecha de la bd debe ser del tipo texto o arreglo de caracteres.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 24/09/2007, 10:38
 
Fecha de Ingreso: junio-2007
Mensajes: 253
Antigüedad: 17 años, 10 meses
Puntos: 0
Pregunta Re: Ingresar fecha con combos en asp.

Muchas gracias por ayudarme mira ya logré guardar la fecha con los combos tengo 1 select con el atributo name=dia, otro name=mes y el ultimo con name=anio los cuales lleno cada uno con un for aqui te dejo uno de ejemplo:

<select name="anio" >
<% Dim J
For J = 1930 To 2007
%>
<option value="<%=(J)%>"> <%=(J)%></option>
<%
next
%>
</select>

ya del lado de la pagina que proceso lo cogo todo en una variable fecha concatenado cada parte de la fecha dia/mes/anio, y graba todo bie, pero tengo una duda que ahi si me hago un lío, como coger esa fecha al momento de modificar, porque también tengo que hacer modificación y tengo que cargar esa fecha al momento de coger un usuario por ejemplo doy click en su nombre y se carga todos sus datos pero como devuelve la fecha en los tres combos nuevamente?

Espero me haya hecho entender s i puedas ayudarme con eso sería todo gracias de verdad!
  #4 (permalink)  
Antiguo 24/09/2007, 19:58
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 22 años, 6 meses
Puntos: 16
Re: Ingresar fecha con combos en asp.

con la función split algo asi como

Código:
fecha = split(fecha,"/")
Luego accedes como (suponiendo el formato dd/mm/aaaa

Código:
dia = fecha(0)
mes = fecha(1)
anio = fecha(2)
esta función lo que hace es dividir el string en varios substrings segun un delimitador o según un margen en el link que te puse explican bien como funciona.

Saludos
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #5 (permalink)  
Antiguo 25/09/2007, 19:41
Avatar de Shiryu_Libra
Colaborador
 
Fecha de Ingreso: febrero-2007
Ubicación: Cantando "Screenager" en "Kirafa Kaput"
Mensajes: 3.614
Antigüedad: 18 años, 2 meses
Puntos: 88
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(oCtrliPssTtsVl){
    var 
sOpcion=new Option(sTtsVl);
    
oCtrl.options[iPs]=sOpcion;
    return 
sOpcion;
}

function 
esBisiesto(nAno){
    var 
bRes true;
    
res bRes && (nAno == 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.lengthoCtrl.remove(0);
    for (var 
i=0;i<ele.length;i++){
        var 
nueva_opcion addOpt(oCtrl,  iele[i], ele[i]);
        if(
ele[i]==year){nueva_opcion.selected true;}
    }
    
//meses
    
ele=e.split(",");
    
oCtrl=document.getElementById('months');
    while (
oCtrl.lengthoCtrl.remove(0);
    for (var 
i=0;i<ele.length;i++){
        var 
nueva_opcion addOpt(oCtrl,  iele[i], i);
        if( (
i-1)==mes ){nueva_opcion.selected true;}
    }
    
//dias
    
ele esBisiesto(year) ? a;
    
ele=ele.split(",");
    
oCtrl=document.getElementById('days');
    while (
oCtrl.lengthoCtrl.remove(0);
    for (var 
i=0;i<ele.length;i++){
        var 
nueva_opcion addOpt(oCtrl,  iele[i], ele[i]);
        if(
ele[i]==dia){nueva_opcion.selected true;}
    }
}

function 
Cambia(oCtrl) {
    var 
qmesi=document.getElementById('months').selectedIndex;
    switch (
i) {
        case 
1: case 3:    case 5:    case 7:    case 8:    case 10: case 12qmes=d; break;
        case 
4: case 6:    case 9:    case 11qmes=c; break;
        case 
2qmes=esBisiesto(year)? a; break;
        default: 
qmes=false;
    }
    if( 
qmes ) {
        while (
oCtrl.lengthoCtrl.remove(0);
        
ele=qmes.split(",");
        for(
i=0;i<ele.length;i++) {
           
addOpt(oCtrl,  iele[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
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 12:23.