Foros del Web » Programando para Internet » Javascript »

onchange y submit()

Estas en el tema de onchange y submit() en el foro de Javascript en Foros del Web. ¡Hola! Tengo un código que coge las coordenadas del ratón y las muestra en un form, pero lo que pasa es que cuando cambien los ...
  #1 (permalink)  
Antiguo 19/06/2007, 07:40
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 9 meses
Puntos: 36
onchange y submit()

¡Hola! Tengo un código que coge las coordenadas del ratón y las muestra en un form, pero lo que pasa es que cuando cambien los valores de los input se tiene que enviar, no sé si me explico:
Código HTML:
<html>
<head>
<title>Coordenadas del cursor</title>
<script>
var isIE = document.all?true:false;
if (!isIE) document.captureEvents(Event.ONCLICK);
document.onclick = getMousePosition;
function getMousePosition(e) {
  var _x;
  var _y;
  if (!isIE) {
    document.exf1.sv_x.value = window.pageXOffset;
    document.exf1.sv_y.value = window.pageYOffset;
    _x = e.pageX;
    _y = e.pageY;
  }
  if (isIE) {
    _x = event.clientX + (document.exf1.sv_x.value = document.body.scrollLeft);
    _y = event.clientY + (document.exf1.sv_y.value = document.body.scrollTop);
  }
  document.exf1.cp_x.value=_x;
  document.exf1.cp_y.value=_y;
  return true;
}
</script>
</head>
<body>
<form name="exf1" action="movertd.php" method="get">
<input type="hidden" name="cp_x" size="20" onChange="document.exf1.submit ()">
<input type="hidden" name="cp_y" size="20" onChange="document.exf1.submit ()">
<input type="hidden" name="sv_x" size="20">
<input type="hidden" name="sv_y" size="20"></form>
</body>
</html> 
Y no me funciona. Me salen bien los valores, pero al cambiar no se envía...
  #2 (permalink)  
Antiguo 19/06/2007, 07:50
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años, 9 meses
Puntos: 1284
Re: onchange y submit()

Hola:

Lo que no estoy seguro de que esté bien es "document.onclick"... creo que debería ser window.onclick o document.body.onclick...

Para asegurarte te recomiendo probar antes con alertas el funcionamiento del evento (según parece lo demás va bien...)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 19/06/2007, 08:10
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 9 meses
Puntos: 36
Re: onchange y submit()

Gracias, Caricatos, pero ese no es el problema, pues funciona correctamente en IE y en Firefox. Puedes probar tú si copias el código y cambias hidden por text.
Lo que no funciona es lo de hacer el submit...
  #4 (permalink)  
Antiguo 19/06/2007, 08:34
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 11 meses
Puntos: 772
Re: onchange y submit()

Hola Raulmmmm

¿No te sirve enviar el formulario desde la función getMousePosition?

Saludos,
  #5 (permalink)  
Antiguo 19/06/2007, 13:30
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 9 meses
Puntos: 36
Re: onchange y submit()

Gracias, JavierB, ahora sí que funciona, pero salen los datos en blanco al enviar:
index.php
Código HTML:
<script type="text/javascript">
var isIE = document.all?true:false;
if (!isIE) document.captureEvents(Event.ONCLICK);
document.onclick = getMousePosition;
function getMousePosition(e) {
  var _x;
  var _y;
  if (!isIE) {
    document.exf1.sv_x.value = window.pageXOffset;
    document.exf1.sv_y.value = window.pageYOffset;
    _x = e.pageX;
    _y = e.pageY;
	document.exf1.submit()
  }
  if (isIE) {
    _x = event.clientX + (document.exf1.sv_x.value = document.body.scrollLeft);
    _y = event.clientY + (document.exf1.sv_y.value = document.body.scrollTop);
  }
  document.exf1.cpx.value=_x;
  document.exf1.cpy.value=_y;
  return true;
}
</script>
<form name="exf1" action="movertd.php" method="get">
<input type="hidden" name="cpx">
<input type="hidden" name="cpy">
<input type="hidden" name="sv_x">
<input type="hidden" name="sv_y"></form> 
movertd.php
Código PHP:
echo $_GET['cpx'], $_GET['cpy']; 
Y no sale nada... ¿Alguien lo entiende?
  #6 (permalink)  
Antiguo 23/06/2007, 11:41
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 9 meses
Puntos: 36
Re: onchange y submit()

¿Será que las variables del formulario tendré que sacarlas desde Javascript? Voy a probar y luego os cuento...
  #7 (permalink)  
Antiguo 23/06/2007, 14:47
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: onchange y submit()

hola...

_x = event.clientX + (document.exf1.sv_x.value = document.body.scrollLeft)

esto es muy extraño, ¿que es lo que estas sumando?

salud os
  #8 (permalink)  
Antiguo 23/06/2007, 15:55
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 9 meses
Puntos: 36
Re: onchange y submit()

Estoy sumando la coordenada del ratón desde la izquierda + el desplazamiento de la barra de desplazamiento de abajo.
  #9 (permalink)  
Antiguo 23/06/2007, 16:57
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 11 meses
Puntos: 9
Re: onchange y submit()

pues si, es correcto.

si llegan en blanco es que los valores no se cargan. Has hecho cambio de nombre a los campos cp_x y cp_y por cpx y cpy, tal vez en algun lado esten todavia los antiguos nombre, no se...

salud os
  #10 (permalink)  
Antiguo 24/06/2007, 13:05
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 9 meses
Puntos: 36
Re: onchange y submit()

Gracias por interesarte, pero he cambiado los input hidden a text y sí que salen los valores. El problema es al enviarlos o al recibirlos, que no salen...
  #11 (permalink)  
Antiguo 24/06/2007, 13:32
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 11 meses
Puntos: 772
Re: onchange y submit()

Hola Raulmmmm

Es probable que el problema sea al recoger las variables. Veo que estás mandando el formulario por el método get ¿te salen las variables en la url de la página de destino?

Saludos,
  #12 (permalink)  
Antiguo 24/06/2007, 13:45
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 9 meses
Puntos: 36
Re: onchange y submit()

No, por eso estaba preguntando...
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 01:59.