Foros del Web » Programando para Internet » Javascript »

pequeña duda del tipo: Porque no lo hace?

Estas en el tema de pequeña duda del tipo: Porque no lo hace? en el foro de Javascript en Foros del Web. que tal compañeros, tengo una pequeña duda de tipo: "porque no lo hace?" aqui en este codigo (tratare de resumirlo para llegar el punto importante): ...
  #1 (permalink)  
Antiguo 17/09/2009, 13:54
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 16 años, 2 meses
Puntos: 12
Pregunta pequeña duda del tipo: Porque no lo hace?

que tal compañeros, tengo una pequeña duda de tipo: "porque no lo hace?" aqui en este codigo (tratare de resumirlo para llegar el punto importante):

Código javascript:
Ver original
  1. function showUser(){
  2.    codigo.Javascript;
  3.    horas()//esta es mi funcion
  4.    mas.Codigo.Javascript;
  5. }

Código javascript:
Ver original
  1. function horas(){
  2.   validaciones.Y.EsasCosas;
  3. }

el problema es que si lo pongo de esta manera no me hace lo que sigue despues de la funcion horas, que en este ejemplo seria "mas.Codigo.Javascript"

pero si lo pongo asi:

Código javascript:
Ver original
  1. function showUser(){
  2.  codigo.Javascript;
  3.    validadciones.Y.EsasCosas //que seria mi funcion horas
  4.    mas.Codigo.Javascript;
  5. }

asi, si funciona, alguna idea del porque?
  #2 (permalink)  
Antiguo 17/09/2009, 14:02
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: pequeña duda del tipo: Porque no lo hace?

Sin ver el código implicado es difícil saber el problema.

Muestra el código de ambas funciones.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 17/09/2009, 14:05
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 16 años, 2 meses
Puntos: 12
Respuesta: pequeña duda del tipo: Porque no lo hace?

solo porque lo pediste :P

Código javascript:
Ver original
  1. function showUser(){
  2.     xmlhttp=GetXmlHttpObject();
  3.     if (xmlhttp==null)  {
  4.         alert ("Browser does not support HTTP Request");
  5.         return;
  6.     }
  7.     var url="getuser2.php"
  8.     url=url+"?q="+document.getElementById("usuario").value;
  9.     if(document.getElementById("titulo").value==""){
  10.         alert("Seleccione la acción que se realizo");
  11.         return;
  12.     }
  13.     else{
  14.         url=url+"&t="+document.getElementById("titulo").value;
  15.     }
  16.    
  17.     if(document.getElementById("hora").value=="00"||document.getElementById("hora").value==""){
  18.         alert("Introduzca la hora a la que se realizo el servicio");
  19.         return;
  20.     }
  21.        
  22.     horas(); //despues de realizar esta funcion lo demas no lo hace
  23.  
  24.     if(opc==1){
  25.         document.getElementById("lol").style.display="";
  26.         if(document.getElementById("dato").value==""){
  27.             alert('El campo de Información extra no debe estar vacio');
  28.             return;
  29.         }
  30.     }
  31.     if(document.getElementById("dato").value!=""){
  32.         url=url+"&d="+document.getElementById("dato").value;
  33.     }
  34.     url=url+"&sid="+Math.random();
  35.     xmlhttp.onreadystatechange=stateChanged;
  36.     xmlhttp.open("GET",url,true);
  37.     xmlhttp.send(null);
  38. }

Código javascript:
Ver original
  1. function horas(){
  2.     if(document.getElementById("hora").value=="00"||document.getElementById("hora").value==""){
  3.         alert("Introduzca la hora a la que se realizo el servicio");
  4.         return;
  5.     }
  6.     if(document.getElementById("minuto").value==""){
  7.         document.getElementById("minuto").value=="00";
  8.         alert(document.getElementById("minuto").value);
  9.     }
  10.     if(document.getElementById("meridiano").value=="pm" && document.getElementById("hora").value <8){
  11.         y = parseInt(document.getElementById("hora").value) + 12;
  12.         document.getElementById("hora").value = y;
  13.     }
  14.  
  15.     var fecha = document.getElementById("mes").value+" "+document.getElementById("dia").value+" "+document.getElementById("year").value+" "+document.getElementById("hora").value+":"+document.getElementById("minuto").value+":00";
  16.     url=url+"&f="+fecha;
  #4 (permalink)  
Antiguo 17/09/2009, 14:18
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 8 meses
Puntos: 839
Respuesta: pequeña duda del tipo: Porque no lo hace?

Debes tener en cuenta el alcance de las variables, no es lo mismo asignar un valor a url en la función showUser (precedida de var) que hacerlo en la función horas (precidada o no de var)

Con este ejemplo creo que quedará claro:
Código Javascript:
Ver original
  1. function funcion1() {
  2.     var url = 'http://test/';
  3.    
  4.     funcion2();
  5.    
  6.     alert(url);
  7. }
  8.  
  9. function funcion2() {
  10.     url = 'http://other/';
  11. }
  12.  
  13. function funcion3() {
  14.     var url = 'http://test/';
  15.    
  16.     url = 'http://other/';
  17.    
  18.     alert(url);
  19. }
  20.  
  21. function funcion4() {
  22.     url = 'http://test/';
  23.    
  24.     funcion2();
  25.    
  26.     alert(url);
  27. }
  28.  
  29. funcion1(); /* http://test/ */
  30. funcion3(); /* http://other/ */
  31. funcion4();  /* http://other/ */
Debes tener en cuenta que no siempre es lo mismo usar var o no al asignar el valor de una variable.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 17/09/2009, 14:34
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años, 1 mes
Puntos: 56
Respuesta: pequeña duda del tipo: Porque no lo hace?

Estás repitiendo estas 3 líneas:
Código javascript:
Ver original
  1. if(document.getElementById("hora").value=="00"||document.getElementById("hora").value==""){
  2.  
  3.         alert("Introduzca la hora a la que se realizo el servicio");
  4.  
  5.         return;
  6.  
  7.     }

Y si esta condición es cierta corta la función por el return;

Edit: No había leído el post de David
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #6 (permalink)  
Antiguo 17/09/2009, 14:34
Avatar de America|UNK  
Fecha de Ingreso: noviembre-2006
Ubicación: Piura - Perú
Mensajes: 582
Antigüedad: 18 años, 1 mes
Puntos: 56
Respuesta: pequeña duda del tipo: Porque no lo hace?

Estás repitiendo estas 3 líneas:
Código javascript:
Ver original
  1. if(document.getElementById("hora").value=="00"||document.getElementById("hora").value==""){
  2.  
  3.         alert("Introduzca la hora a la que se realizo el servicio");
  4.  
  5.         return;
  6.  
  7.     }

Y si esta condición es cierta corta la función por el return;
__________________
/* El que atiende, entiende..., el que entiende, aprende!.
Desarrollo Web Freelance, Contactar */
  #7 (permalink)  
Antiguo 17/09/2009, 14:38
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 16 años, 2 meses
Puntos: 12
Respuesta: pequeña duda del tipo: Porque no lo hace?

ok, creo que entendi tu punto (o talvez no), tons lo recomendable seria poner url como variable global o en todo caso enviarsela como parametro a la funcion, tu funcion me saco muchas dudas, segun yo deberia alertar: other, other y test al final :S
  #8 (permalink)  
Antiguo 17/09/2009, 14:40
Avatar de lukas4  
Fecha de Ingreso: octubre-2008
Ubicación: frente al pc
Mensajes: 496
Antigüedad: 16 años, 2 meses
Puntos: 12
Respuesta: pequeña duda del tipo: Porque no lo hace?

Cita:
Iniciado por America|UNK Ver Mensaje
Estás repitiendo estas 3 líneas:
Código javascript:
Ver original
  1. if(document.getElementById("hora").value=="00"||document.getElementById("hora").value==""){
  2.  
  3.         alert("Introduzca la hora a la que se realizo el servicio");
  4.  
  5.         return;
  6.  
  7.     }

Y si esta condición es cierta corta la función por el return;
cierto, solo que se me paso borrar esto, porke ya tenia el codigo de la funcion horas en la funcion showUser, cuando lo puse aki, copie todo tal y como lo tengo,pero se paso borrar estas lineas ;)
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 19:47.