·
miarroba.com
Como llamar a una Funcion desde el ACTION del formulario???
 
Índice de subforos · Ayuda para webmasters · Java y Javascript
Noticias · Buscar · Tags · Tagboard · Usuarios · Fisgona
Autor Mensaje 
KSSAKSSA
Usuario habitual
Usuario habitual

Haz clic para ver el perfil del usuario
Mensajes: 35
Desde: 25/Ago/2005
#1 ·
 Como llamar a una Funcion desde el ACTION del formulario???

Como puedo llamar una funcion desde el action del formulario?? le pongo el nombre de la funcion, pero no hace nada, solo me refresca la misma pagina.

Además, en ese mismo formulario, ya ocupe el evento onsubmit por eso pretendo meterlo en el action. A menos que haya otra forma.

Lo necesito para abrir una nueva ventana estilo pop-up o al menos indicarle un tamaño especifico a la siguiente ventana, pero no se en que parte debo indicarlo.

30/Ago/2005 18:43 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#2 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Déjame ver las dos funciones que quieres usar en el submit a ver cuál puede ser la forma más eficaz

30/Ago/2005 19:01 GMT+1
KSSAKSSA
Usuario habitual
Usuario habitual

Haz clic para ver el perfil del usuario
Mensajes: 35
Desde: 25/Ago/2005
#3 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

La que utilizo en onsubmit es esta, con ella no tengo problemas ya:

function VALIDA_OTROS(F)
{
if (document.getElementById('U_NumReg').value == false) { BU1=false } else { BU1=true; Asignar_Valor('U_NumReg','H_U_NumReg'); }
if (document.getElementById('U_Nombre').value == false) { BU2=false } else { BU2=true; Asignar_Valor('U_Nombre','H_U_Nombre'); }
if (document.getElementById('U_Tipo').value == false) { BU3=false } else { BU3=true; Asignar_Valor('U_Tipo','H_U_Tipo'); }
if (document.getElementById('U_Cubi').value == false) { BU4=false } else { BU4=true; Asignar_Valor('U_Cubi','H_U_Cubi'); }
if (document.getElementById('U_Jefe_G').value == false) { BU5=false } else { BU5=true; Asignar_Valor('U_Jefe_G','H_U_Jefe_G'); }
if (document.getElementById('U_Tel').value == false) { BU6=false } else { BU6=true; Asignar_Valor('U_Tel','H_U_Tel'); }
if (document.getElementById('U_Mail').value == false) { BU7=false } else { BU7=true; Asignar_Valor('U_Mail','H_U_Mail'); }

document.getElementById('From_OTROS').value= true
document.getElementById('From_MONO').value = false
document.getElementById('From_REVIS').value = false


if ( (F.Congreso.value) == false ) { B1=false } else { B1=true }
if ( (F.Autor.value) == false ) { B2=false } else { B2=true }
if ( (F.Tit_Cap.value) == false ) { B3=false } else { B3=true }
if ( (F.L_Public.value) == false ) { B4=false } else { B4=true }
if ( (F.Editorial.value) == false ) { B5=false } else { B5=true }
if ( (F.Año.value) == false ) { B6=false } else { B6=true }
if ( (F.Volumen.value) == false ) { B7=false } else { B7=true }
if ( (F.Numero.value) == false ) { B8=false } else { B8=true }
if ( (F.Paginas.value) == false ) { B9=false } else { B9=true }
if ( (F.ISBN.value) == false ) { B10=false } else { B10=true }
if ( (F.Lugar.value) == false ) { B11=false } else { B11=true }
if ( (F.Fecha.value) == false ) { B12=false } else { B12=true }

if (B1 & B2 & B3 & B4 & B5 & B6 & B7 & B8 & B9 & B10 & B11 & B12 & BU1 & BU2 & BU3 & BU4 & BU5 & BU6 & BU7)
{ alert ("todos llenos"Giño; return true; }
else
{ alert ("al menos un campo vacio"Giño; return false; }
}
</SCRIPT>



Esta la que encontre, para poder darle un tamaño a mi nueva ventana

<script>
<!--
function Abre_ventana (pagina){
ventana=window.open(pagina,"","toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=yes,width=550,height=20"Giño;
}
-->
</script>






Y en los formularios, tengo:

<FORM name=F_Otros onsubmit= "return VALIDA_OTROS(this);" action= "Confirmacion_Datos.php" method=post>



Solo quiero saber como le hago para que cuando le de click y se abra la pagina CONFIRMACION_DATOS.PHP esta se abra pequeña, con unos cuantos datos que paso de la pag original y un par de botones??

30/Ago/2005 20:51 GMT+1
vhsPvhsP
Machacateclados
Machacateclados

Haz clic para ver el perfil del usuario
Mensajes: 162
Desde: 15/Jul/2005
#4 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

y cual seria la idea de que se ejecute en el action,

no entiendo, si al parecer lo que quieres es que cuando se trate de enviar la informacion del formaluario, llame a una funcion


lo puedes hacer llamando a la function desde todos lo botones de typo submit, y en el onsubmir


y ademas , puedes llamar mas de una funcion por evento solo peralas por ,


Saludos
Vhs

30/Ago/2005 23:45 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#5 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Así a ojo lo más sencillo que puedes hacer es esto;

Agrega la siguiente línea en la primera función y en este lugar

Codigo:

function VALIDA_OTROS(F)
{
if (document.getElementById('U_NumReg').value == false) { BU1=false } else { BU1=true; Asignar_Valor('U_NumReg','H_U_NumReg'); }
if (document.getElementById('U_Nombre').value == false) { BU2=false } else { BU2=true; Asignar_Valor('U_Nombre','H_U_Nombre'); }
if (document.getElementById('U_Tipo').value == false) { BU3=false } else { BU3=true; Asignar_Valor('U_Tipo','H_U_Tipo'); }
if (document.getElementById('U_Cubi').value == false) { BU4=false } else { BU4=true; Asignar_Valor('U_Cubi','H_U_Cubi'); }
if (document.getElementById('U_Jefe_G').value == false) { BU5=false } else { BU5=true; Asignar_Valor('U_Jefe_G','H_U_Jefe_G'); }
if (document.getElementById('U_Tel').value == false) { BU6=false } else { BU6=true; Asignar_Valor('U_Tel','H_U_Tel'); }
if (document.getElementById('U_Mail').value == false) { BU7=false } else { BU7=true; Asignar_Valor('U_Mail','H_U_Mail'); }

document.getElementById('From_OTROS').value= true
document.getElementById('From_MONO').value = false
document.getElementById('From_REVIS').value = false


if ( (F.Congreso.value) == false ) { B1=false } else { B1=true }
if ( (F.Autor.value) == false ) { B2=false } else { B2=true }
if ( (F.Tit_Cap.value) == false ) { B3=false } else { B3=true }
if ( (F.L_Public.value) == false ) { B4=false } else { B4=true }
if ( (F.Editorial.value) == false ) { B5=false } else { B5=true }
if ( (F.Año.value) == false ) { B6=false } else { B6=true }
if ( (F.Volumen.value) == false ) { B7=false } else { B7=true }
if ( (F.Numero.value) == false ) { B8=false } else { B8=true }
if ( (F.Paginas.value) == false ) { B9=false } else { B9=true }
if ( (F.ISBN.value) == false ) { B10=false } else { B10=true }
if ( (F.Lugar.value) == false ) { B11=false } else { B11=true }
if ( (F.Fecha.value) == false ) { B12=false } else { B12=true }

if (B1 & B2 & B3 & B4 & B5 & B6 & B7 & B8 & B9 & B10 & B11 & B12 & BU1 & BU2 & BU3 & BU4 & BU5 & BU6 & BU7)
{
alert ("todos llenos"Giño
ventana = window.open(pagina, "", "toolbar=no, location=no, directories=no, status=yes,menubar=no, scrollbars=yes,resizable=yes, width=550,height=20"Giño
return true;

}
else{
alert ("al menos un campo vacio"Giño; return false; }
}
</SCRIPT>




...y al tag de form agrégale un target a esa ventana

<FORM name=F_Otros onsubmit= "return VALIDA_OTROS(this);" action= "Confirmacion_Datos.php" method=post target="ventana">

Creo que así te debería de funcionar ok (la segunda función no hace falta que la pongas pues se incluye dentro de la primera)

por cierto, te sugiero le pongas las comillas dobles a los valores de los atributos.

un saludo

31/Ago/2005 10:35 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#6 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

hum... no me deja editar mi mensaje, cuidado que hay algo que debes cambiar en la línea que se agrega a la función

cambia esto

ventana = window.open(pagina, "", "toolbar=no, location=no, directories=no, status=yes,menubar=no, scrollbars=yes,resizable=yes, width=550,height=20"Giño

por esto

ventana = window.open("", "", "toolbar=no, location=no, directories=no, status=yes,menubar=no, scrollbars=yes,resizable=yes, width=550,height=20"Giño

31/Ago/2005 10:38 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#7 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Qué pesaditos son los caretos

ventana = window.open("", "", "toolbar=no, location=no, directories=no, status=yes,menubar=no, scrollbars=yes,resizable=yes, width=550,height=20")

asegúrate de que esté cerrado el paréntesis del final

31/Ago/2005 10:40 GMT+1
KSSAKSSA
Usuario habitual
Usuario habitual

Haz clic para ver el perfil del usuario
Mensajes: 35
Desde: 25/Ago/2005
#8 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

ok, mi pregunta ahora es para que es el target? Segun yo, me ignora el action del formulario o no?? y ademas, se supone que los datos de la primer pagina los estaba pasando a la segunda, y al abrirla normalmente (de tamaño grande) si los imprimia con PHP, pero ahora, aunque ya me abre la ventana pequeña, no puedo imprimir los valores de los campos de la pagina de la que vengo.

Esto es lo que esta en la pagina de "Confirmacion_Datos.php":








<body><?php

echo "IMPRIME ESTO!!!!";
if ($From_OTROS == true)
{
echo "Otros True";
echo "<p> $H_U_NumReg </p>";
echo "<p> $H_U_Nombre </p>";
echo "<p> $H_U_Tipo </p>";
echo "<p> $H_U_Cubi </p>";
echo "<p> $H_U_Jefe_G </p>";
echo "<p> $H_U_Tel </p>";
echo "<p> $H_U_Mail </p>";
}
else
{
if ($From_MONO == true)
{
echo "MONOGRAFIAS True";
echo "<p> $H_U_NumReg2 </p>";
echo "<p> $H_U_Nombre2 </p>";
echo "<p> $H_U_Tipo2 </p>";
echo "<p> $H_U_Cubi2 </p>";
echo "<p> $H_U_Jefe_G2 </p>";
echo "<p> $H_U_Tel2 </p>";
echo "<p> $H_U_Mail2 </p>";
}
else
{
if ($From_REVIS == true)
{
echo "REVISTAS True";
echo "<p> $H_U_NumReg3 </p>";
echo "<p> $H_U_Nombre3 </p>";
echo "<p> $H_U_Tipo3 </p>";
echo "<p> $H_U_Cubi3 </p>";
echo "<p> $H_U_Jefe_G3 </p>";
echo "<p> $H_U_Tel3 </p>";
echo "<p> $H_U_Mail3 </p>";
}
}
}

echo $Congreso;

?>




De hecho el php si lo acepta porque el primer echo si lo hace!

31/Ago/2005 16:43 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#9 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

¿Qué es lo que quieres que te cargue en la ventana popup?

Entendí que querías que el resultado de enviar el form se abriera dentro de la popup.

Detalla un poco mejor lo que pretendes lograr exactamente y así daremos menos vueltas

31/Ago/2005 17:25 GMT+1
KSSAKSSA
Usuario habitual
Usuario habitual

Haz clic para ver el perfil del usuario
Mensajes: 35
Desde: 25/Ago/2005
#10 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

OK, lo que quiero que se cargue, son los valores de los campos que tengo en dos formularios dentro de la pagina1. Ponerlos en la pagina, en forma de tabla o algo asi, solo poner los valores como:

Nombre: fulano de tal
Direccion: bla bla

Para que puedan ver si estan correctos y si no, que se regrese a la pagina original ( la que queda atras de la chiquita).

Arriba puse el codigo que tengo en la pagina que se abre en chiquito, y mi problema es que cuando la abro en chiquito no me imprime las variables de los echo y si la abro normal, solo con el action si lo hace.

Lo siento si no me explico muy bien. Espero me hayas entendido Angelito

31/Ago/2005 17:48 GMT+1
KSSAKSSA
Usuario habitual
Usuario habitual

Haz clic para ver el perfil del usuario
Mensajes: 35
Desde: 25/Ago/2005
#11 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Ya se, creo q asi es mas sencillo y directo:

Originalmente, ya que habia regresado el true de la funcion que valida, hacia el action y se iba a Confirmacion_Datos.php. Pero como es poquita informacion la que quiero mostrar me sobraba una gran parte de la pagina, entonces, lo unico que quiero es que haga exactamente lo que hace en tamaño normal, pero que la ventana aparesca en chiquito ok.

Segun yo, ya casi casi esta, mi problema ahora es que cuando la abro en chiquito no imprime las variables, no se si no se las estoy mandando a la ventana pop up??

31/Ago/2005 17:52 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#12 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

...dime si lo que pretendes hacer es esto:

Tienes un form y lo que quieres es que antes de ser enviado a su lugar definitivo se abra una ventana popup con una tabla que muestre los datos introducidos y pida confirmación. En caso de ser correctos que se envíen esos datos.

¿Es así? ¿por eso estás usando dos forms y copias los valores de uno en el otro?

31/Ago/2005 18:58 GMT+1
KSSAKSSA
Usuario habitual
Usuario habitual

Haz clic para ver el perfil del usuario
Mensajes: 35
Desde: 25/Ago/2005
#13 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

si, exactamente, los recibo en una pagina, los mano a un popup para que el usuario verifique si son correctos, si no, se cierra esa y los corrige en la original, si si son correctos entonces los escribe en un archivo.

31/Ago/2005 19:17 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#14 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

ok, suponiendo que lo haya entendido correctamente te cuento que se puede hacer de una forma menos laboriosa y con menos código y un sólo formulario.

Te pongo un ejemplo para que te bases en él. Si hace lo que pretendes no tendrás más que adaptarlo a tu formulario:

El ejemplo consta de dos páginas (pruébalo tal cual te lo pongo en documentos nuevos)

página1 con el formulario

Codigo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Formulario</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
<!--
var formu
function validaCampos(f){
mensaje = "por favor rellene todos los campos"
if(f.Nombre.value == ""){
alert(mensaje)
return false
}
if(f.Apellido.value == ""){
alert(mensaje)
return false
}
if(f.Email.value == ""){
alert(mensaje)
return false
}
formu = f
ventana = window.open('','ventana','width= 400, height=400')
}
function enviaForm(){
formu.action = "javascript:alert('me envío!')"
formu.target = "_self"
formu.submit()

}
//-->
</script>
</head>

<body>
<form name="form1" id="form1" method="post" action="kssaformconfirma.php" target="ventana" onsubmit="return validaCampos(this)">
Nombre
<input name="Nombre" type="text" id="Nombre" />
<br />
Apellido
<input name="Apellido" type="text" id="Apellido" />
<br />
e-mail
<input name="Email" type="text" id="Email" />
<br />
<input type="submit" value="Enviar" />
</form>
</body>
</html>



Página2 (kssaformconfirma.php) confirma los datos

Codigo:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Confirmar datos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>

<body>
<strong>Por favor, confirme si los datos son correctos</strong>
<p>
<?php
foreach($_POST as $nombre => $valor){
echo $nombre.": ".$valor."<br />";
}
?>
</p>
<p>
<input type="button" value="Son correctos. Enviar" onclick="opener.enviaForm(); self.close()" />
<input type="button" value="Hacer cambios. Cancelar" onclick="self.close()" />
</p>
</body>
</html>



El sistema es el siguiente:

Hay un sólo form que lleva una acción inicial que envía a la página de confirmación y un target a la ventana popup.

Al submitir el formulario llama a una función js que verifica que estén todos los campos rellenos y en caso afirmativo lanza el form en la ventana popup a la página de confirmación (mediante submit).

En la popup muestra los datos con dos botones: aceptar y cancelar.
Cancelar cierra la popup sin hacer nada
Aceptar llama a otra función que está en la página con el formulario. Esta función se encarga de cambiar la acción y el target del formulario y acto seguido lo envía (dentro de la propia ventana del form)

En el ejemplo cambia la acción por un alert js para que veas el comportamiento, obviamente habrás de cambiar ese valor por el de la página a donde deba enviarse definitivamente el formulario.

me refiero a esta línea
formu.action = "javascript:alert('me envío!')"

deberás cambiarla por algo tipo ...
formu.action = "paginadefinitiva.php"

Yá me contarás

Un saludo :c)

31/Ago/2005 20:17 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#15 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Escrito originalmente por tunait


Yá me contarás




...pues no, parece que no me cuenta nada, ni si fue bien ni si fue mal

02/Sep/2005 19:56 GMT+1
chavpchavp
Moderador
Moderador

Haz clic para ver el perfil del usuario

Usuario PRO Usuario PRO
Mensajes: 16.687
Desde: 20/Dic/2002
#16 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Escrito originalmente por tunait
Escrito originalmente por tunait


Yá me contarás




...pues no, parece que no me cuenta nada, ni si fue bien ni si fue mal


ja, ja tunait que estos no son los fdw Sonrisa

02/Sep/2005 21:20 GMT+1
tunaittunait
Usuario habitual
Usuario habitual


Mensajes: 43
Desde: 29/Ago/2003
#17 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Escrito originalmente por gaf

ja, ja tunait que estos no son los fdw Sonrisa


jeje ... no creas, Gaf, que allá pasa exactamente lo mismo Divertido

02/Sep/2005 21:37 GMT+1
KSSAKSSA
Usuario habitual
Usuario habitual

Haz clic para ver el perfil del usuario
Mensajes: 35
Desde: 25/Ago/2005
#18 ·
 RE: Como llamar a una Funcion desde el ACTION del formulario???

Hola!! lo siento pero ya no tuve internet en estos dias!! Enfurruñado y gracias si me sirvio bastante!!! Thank's!!!! Rebotado

05/Sep/2005 03:51 GMT+1
Índice de subforos · Ayuda para webmasters · Java y Javascript
Temas similares
Asunto Autor#VisitasÚltima respuesta
Problema con funcion JS y Action Script en navegadores.07/Abr/2006, 21:53
Yoshi_AFCLYoshi_AFCL
177108/Abr/2006, 06:52
Yoshi_AFCLYoshi_AFCL Ir al último mensaje del tema
FUNCION EN JAVASCRIPT, lo he logrado en action pero quiero ahora en java...10/Abr/2004, 23:56
naranjametallicnaranjametallic
0572No hay respuestas
Mostrar datos de formulario27/Nov/2008, 13:39
memento2008memento2008
025No hay respuestas
Sumar valor de checkbox de formulario06/Ago/2008, 12:12
sabigsabig
181814/Nov/2008, 01:06
Paolo25Paolo25 Ir al último mensaje del tema
ayuda con formulario14/Jul/2008, 17:03
SetteSette
217014/Jul/2008, 19:45
SetteSette Ir al último mensaje del tema
Opciones:
Versión imprimible del tema
Subscríbete a este tema
Date de baja de este tema
Ir al subforo:  

TU NO PUEDES Escribir nuevos temas en este foro
TU NO PUEDES Responder a los temas en este foro
TU NO PUEDES Editar tus propios mensajes en este foro
TU NO PUEDES Borrar tus propios mensajes en este foro
Todas las fechas y horas son GMT+1. Ahora son las 04:49
Miarroba Networks, S.L. C/ 18 de Julio, 21 Bajo, 39610 Astillero (CANTABRIA) - CIF B-39512736
Inscrita en el Registro Mercantil de Cantabria, tomo 743, folio 161, libro 0, hoja S-12428, Instripción 1ª