Foros del Web » Programando para Internet » Javascript »

Valores en variables (¿globales?)

Estas en el tema de Valores en variables (¿globales?) en el foro de Javascript en Foros del Web. Hola, estoy ya un poco quemado con este tema, llevo más posts en el foro en una semana que en todo el tiempo que llevo ...
  #1 (permalink)  
Antiguo 02/02/2006, 05:25
Avatar de josemari11  
Fecha de Ingreso: agosto-2004
Ubicación: Fuenlabrada (Madrid)
Mensajes: 95
Antigüedad: 19 años, 8 meses
Puntos: 0
Busqueda Valores en variables (¿globales?)

Hola, estoy ya un poco quemado con este tema, llevo más posts en el foro en una semana que en todo el tiempo que llevo aquí.

Os cuento, ¿qué puedo hacer para que este código me devuelva los valores de fInicial y fFinal? Gracias. Os pego el código (sin tabular, lo siento), esta dentro del HEAD:


function Fechas(fInicial,fFinal) {
var f=document.Form.dateField.value
var p = document.miForm.periodo.value;
var array=f.split("/");
var d=parseInt(array[0])
var m=parseInt(array[1])
var y=parseInt(array[2])
//alert('Fecha: '+d+'/'+m+'/'+y+' - '+p)

if (p=="Mensual") {
var f= new Date(y,m-1,d)
fInicial="1/"+(m+1)+"/"+(y);
fFinal="1/"+(f.getMonth())+"/"+(f.getYear());
}
if (p=="Trimestral") {
var f= new Date(y,m-1,d)
var mes=f.getMonth()
if ((mes==1) || ((mes==2) || (mes== 3))) {
fInicial="1/1/"+f.getYear()
fFinal="1/4/"+f.getYear()
}
if ((mes==4) || ((mes==5) || (mes==6))) {
fInicial="1/4/"+f.getYear()
fFinal ="1/7/"+f.getYear()
}
if ((mes==7) || ((mes==8) || (mes==9))) {
fInicial="1/7/"+f.getYear()
fFinal="1/10/"+f.getYear()
}
if ((mes==10) || ((mes==11) || (mes==12))) {
fInicial="1/10/"+f.getYear()
f= new Date(y,m-1,d+1)
fFinal="1/1/"+f.getYear()
}
}
if (p=="Anual") {
var f= new Date(y,m-1,d)
fInicial="1/1/"+f.getYear()
f= new Date(y,m-1,d+1)
fFinal="1/1/"+f.getYear()
}
alert(p+' del '+fInicial+' al '+fFinal);
//return fInicial,fFinal;
}

Este último alert me lo muestra bien. Y luego llamo a la función desde otra función que es:


function saltoPortes(){
Fechas(fInicial,fFinal);
alert('De '+fInicial+' a '+fFinal);
window.parent.principal.location="proveedores/portes.asp?sqlWhere=WHERE%20'"+fInicial+"'<=%20pro 2002f.fecha%20AND%20pro2002f.fecha<'"+fFinal+"' "
}

Este alert ya no lo muestra. Si las declaro como globales me muestra "De a " (vacio) y si no las declaro me muestra "De undefined a undefined".

A ver que puedo hacer, soy un novato en el Javascript.
  #2 (permalink)  
Antiguo 02/02/2006, 08:24
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
La mejor manera es que generes un array con estos valores y devuelvas el array.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
  #3 (permalink)  
Antiguo 02/02/2006, 09:54
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Declara las variables fuera de la función:

var finicial ffinla;

function () {
...
finicial = lo_que_sea;
ffinal = lo_que_sea;

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
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 06:25.