Foros del Web » Programando para Internet » Javascript » Frameworks JS »

onclick no ejecuta correctamente dos funciones

Estas en el tema de onclick no ejecuta correctamente dos funciones en el foro de Frameworks JS en Foros del Web. Hola. Me ha surgido un problema. Si en onclick de un boton pongo: "xajax_procesar_formulario(xajax.getFormValues('fo rmulario_alta_barco'));window.close();" me hace la funcion xajax perfectamente y seguidamente me cierra ...
  #1 (permalink)  
Antiguo 07/04/2009, 04:44
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
onclick no ejecuta correctamente dos funciones

Hola.
Me ha surgido un problema. Si en onclick de un boton pongo:
"xajax_procesar_formulario(xajax.getFormValues('fo rmulario_alta_barco'));window.close();"
me hace la funcion xajax perfectamente y seguidamente me cierra la ventana.
En cambio, si pongo:
"xajax_procesar_formulario(xajax.getFormValues('fo rmulario_alta_barco'));location.replace('./conf_alta_barco.php');"
no me hace la funcion xajax y si la segunda funcion.
¿Como lo puedo hacer para que me haga las dos? Estoy desesperado.
Lo raro es que haciendolo mediante dos botones diferentes si funciona todo.
  #2 (permalink)  
Antiguo 07/04/2009, 06:46
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: onclick no ejecuta correctamente dos funciones

Hola

Dando palos de ciego

El problema puede estar en que usas location.replace y tal vez para el caso que ocupa has de usar location.href

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #3 (permalink)  
Antiguo 07/04/2009, 07:04
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 8
Respuesta: onclick no ejecuta correctamente dos funciones

lo que podrias hacer tambien es utilizar la función addRedirect("conf_alta_barco.php");

la explicación está demás...

Exito.
  #4 (permalink)  
Antiguo 07/04/2009, 15:26
 
Fecha de Ingreso: marzo-2009
Mensajes: 5
Antigüedad: 15 años, 2 meses
Puntos: 0
Respuesta: onclick no ejecuta correctamente dos funciones

Bueno, he probado ambas opciones que me decís:
-Con location.replace me pasa lo mismo.
-Con addRedirect("conf_alta_barco.php"); en el codigo xajax no me hace nada, pues no consigo que me haga nada que ponga en el response (es que soy novato en xajax).
Pero bueno, probando y probando, he descubierto que es un problema de tiempos y sincronizacion. Me explico. Si lo pongo así:
<script language="JavaScript">
function adelante() {
self.location.href='./conf_alta_barco.php';
}
</script>
Y luego:
onClick="xajax_procesar_formulario(xajax.getFormVa lues('formulario_alta_barco')); setTimeout('adelante()', 1000);">
Funciona perfectamente.
¿Hay alguna forma más limpia para no tener que esperar? De todas formas, ahora mismo funciona.

Muchas gracias por los comentarios anteriores y por los futuros.
  #5 (permalink)  
Antiguo 08/04/2009, 07:28
Avatar de Adler
Colaborador
 
Fecha de Ingreso: diciembre-2006
Mensajes: 4.671
Antigüedad: 17 años, 4 meses
Puntos: 126
Respuesta: onclick no ejecuta correctamente dos funciones

Hola

A esto, self.location.href='./conf_alta_barco.php';, es a lo que me refería en mi post anterior. De cualquier modo ¿por que no lo insertas en la función xajax_procesar_formulario(), una vez que se llegue al estado final?

Suerte
__________________
Los formularios se envían/validan con un botón Submit
<input type="submit" value="Enviar" style="background-color:#0B5795; font:bold 10px verdana; color:#FFF;" />
  #6 (permalink)  
Antiguo 08/04/2009, 08:08
Avatar de eall  
Fecha de Ingreso: noviembre-2008
Ubicación: Concepcion
Mensajes: 127
Antigüedad: 15 años, 6 meses
Puntos: 8
De acuerdo Respuesta: onclick no ejecuta correctamente dos funciones

se supone que creas un objeto xajaxResponse al inicio de la funcion y con ese objeto llamas la función que te dije.

Código PHP:

function procesar_formulario($formulario){
    
$respuesta = new xajaxResponse();   //objeto xajax
     
.
     ..
     ..      
//tus procesos
     
..
     ..
     ..
     
$respuesta->addRedirect("conf_alta_barco.php");
     return 
$respuesta;


así debería funcionar.

avisa si te resulta.

Adios
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:16.