JavaScript - como enviar diferentes forms según radio-button

 
Vista:
sin imagen de perfil

como enviar diferentes forms según radio-button

Publicado por David (7 intervenciones) el 21/05/2015 23:52:54
Muy buenas a todos:
Antes de nada pedir disculpas por que posiblemente sea bastante fácil, pero no doy encontrado la manera.
En mi web estoy intentando implementar diferentes formas de pago, en concreto dos, (tarjetas) y paypal.
Pero claro, el usuario tiene que elegir entre las dos, para esto cree un form con dos radio-button.
y luego tengo creado los dos formularios necesarios para cada una de las dos opciones pero no soy capaz de hacer que me los envie.
Os resumo el codigo a ver si me podeis ayudar.
1
2
3
4
5
6
7
8
9
10
11
12
<form id="formaPagoForm" name="formaPagoForm" method="post" action="">
        <input type="radio" name="modoPago" id="sabadell" value="sabadell"
        <input type="radio" name="modoPago" id="paypal" value="paypal">
  </form>
<button type="input" onclick="enviar()">IR A PAGAR</button>
 
<script type="text/javascript">
 
function enviar() {if (document.forms.formaPagoForm.paypal.checked==true){document.forms.paypalForm.submit();}
else if (document.forms.formaPagoForm.sabadell.checked==true){document.forms.sabadellForm.submit();}
 
</script>

Perdón por el tocho y gracias de antemano.
P:D
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

como enviar diferentes forms según radio-button

Publicado por xve (2100 intervenciones) el 22/05/2015 08:23:35
Hola David, no entiendo muy bien tu código... haces referencia a formularios que no nos has mostrado... por ejemplo, al formulario paypalForm y sabadellForm...

De todas maneras, veo dos posible errores:
- No tienes bien cerrado el primer input type="radio"
- No tienes bien cerradas las llaves {} de la función enviar()

Puede ser por alguno de estos errores que no te funciona?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como enviar diferentes forms según radio-button

Publicado por David (7 intervenciones) el 22/05/2015 12:16:34
Antes de nada gracias por tu respuesta.
Crei que me habias dado una alegría, pero no.
Los cierres están bien,fue un error a la hora der pasarlos aqui,en el documento están bien cerrados.
En cuanto a los forms que no pongo es porque son bastante largos, y además están probados de forma independiente y funcionan perfectamente, por eso no creo importante mostrarlos.
Además creo que el problema esta a la hora de utilizar el submit en la función enviar, ya que he realizado diferentes pruebas como alerts y funciona bien, pero a la hora de pedir que me los envie pasa de mi.
la verdad es que me centre más en php y de javascript no controla nada.
De todas formas si crees que puede haber una alternativa,te agradecería el cable por que llevo dos dias loqueando-jejeje
Gracias de nuevo y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

como enviar diferentes forms según radio-button

Publicado por Vainas (258 intervenciones) el 22/05/2015 20:56:47
Buenas:

Pues como minimo tendrias que dar la cabecera del form que es la que puede estar dando problemas. Yo he hecho esta prueba y aunque da error en el jsfiddle para mi viendo la consola de chrome funciona:

http://jsfiddle.net/5rqL9v9e/

He creado dos formularios mas con un name que es lo que se va a necesitar para ser llamado.

En fin ya nos daras algo mas de info.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como enviar diferentes forms según radio-button

Publicado por David (7 intervenciones) el 23/05/2015 12:17:33
Pues te pongo todo el código.

Los formularios que quiero enviar dependiendo de la selección son ocultos, porque dependiendo de la selección pues se irá o bien a la página de paypal o de mi propio banco en este caso sabadell.

FORMULARIO(PAYPAL)

1
2
3
4
5
6
7
8
9
10
11
12
13
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top" id="paypalForm" name="paypalForm">
	<input type="hidden" name="cmd" value="_cart">
	<input type="hidden" name="upload" value="1">
	<input type="hidden" name="discount_amount_cart" value="<?php echo $descuento;?>"/>
	<input type="hidden" name="business" value="*************"/>
	<?php echo $item;?>
	<input type = "hidden" name ="charset" value = "UTF-8">
	<input type="hidden" name="currency_code" value="EUR">
	<input type="hidden" name="rm" value="2">
	<input type="hidden" name="return" value="********************* "/>
	<input type="hidden" name="cbt" value = "Volver a Gameshouse" />
	<input type="hidden" name="cancel_return" value = "**************" />
</form>

FORMULARIO( SABADELL)

1
2
3
4
5
6
7
8
9
10
11
<form action="https://sis-t.redsys.es:25443/sis/realizarPago" method="post" name="sabadellForm" id="sabadellForm">
	<input type="hidden" name="Ds_Merchant_Amount" value="<?php echo $totalFinal;?>">
	<input type="hidden" name="Ds_Merchant_Currency" value="978">
	<input type="hidden" name="Ds_Merchant_Order" value="20151">
	<input type="hidden" name="Ds_Merchant_Titular" value="<?php echo $sesion_usuario['nombre'].$sesion_usuario['apellidos'];?>">
	<input type="hidden" name="Ds_Merchant_MerchantCode" value="************">
	<input type="hidden" name="Ds_Merchant_MerchantName" value="**********">
	<input type="hidden" name="Ds_Merchant_MerchantSignature" value="<?php echo $cadena;?>">
	<input type="hidden" name="Ds_Merchant_Terminal" value="1">
	<input type="hidden" name="Ds_Merchant_Identifier" value="1">
</form>

FORMULARIO PARA SELECCIONAR LAS OPCIONES Y LLAMAR A ENVIAR()

1
2
3
4
<form id="formaPagoForm" name="formaPagoForm" method="post" action="">
<input type="radio" name="modoPago" id="sabadell" value="sabadell" checked="checked"/>
<input type="radio" name="modoPago" id="paypal" value="paypal">
<button type="input" onclick="enviar()">IR A PAGAR</button>

AHORA EL SCRIPT

1
2
3
4
5
6
7
8
9
10
11
12
<script type="text/javascript">
function enviar() {
	if (document.forms.formaPagoForm.paypal.checked==true){
		document.forms.sabadellForm.submit();
		alert ("paypal");
	}
	else if (document.forms.formaPagoForm.sabadell.checked==true){
		document.forms.paypalForm.submit();
		alert ("sabadell");
	}
}
</script>

ya ves, es la tipica página donde una vez tienes todos los productos en el carrito,te da la opción de elegir de que forma quieres pagarlo.
Al lado de uno de los radios esta la tipica imagen de las tarjetas de crédito y en el otro el logo de paypal y justo debajo el boton de ir a pagar, pues dependiendo del que elijas pues irás o a la página de pago de paypal o a la página de pago del banco.
Pues bien el alert me funciona el envio no.
Gracias de nuevo y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

como enviar diferentes forms según radio-button

Publicado por xve (2100 intervenciones) el 23/05/2015 18:46:09
Hola David, te has dado cuenta, de que cuando tienes activo el pago por paypal, activas el envío del sabadell y a la inversa cuando tienes seleccionado el del sabadell, envías el paypal... creo que esta al revés, no?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

como enviar diferentes forms según radio-button

Publicado por David (7 intervenciones) el 23/05/2015 19:13:53
Si, la verdad es que fue un error de transcripción porque en el original lo tengo bien, pero eso no cambia que sigue sin funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Vainas
Val: 95
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

como enviar diferentes forms según radio-button

Publicado por Vainas (258 intervenciones) el 24/05/2015 10:30:49
Buenas:

Vale ya veo el problema:

El button puede ser de tipo: button, submit o reset pero no input asi que toma por el valor por defecto que es de tipo submit y esto reenvia el formulario de formas de pago (al menos para mi). Posible solucion:

1
2
3
4
5
<form id="formaPagoForm" name="formaPagoForm" method="post" action="">
sabadel<input type="radio" name="modoPago" id="sabadell" value="sabadell" checked="checked"/><br/>
paypal<input type="radio" name="modoPago" id="paypal" value="paypal">
<button type="submit" onclick="return enviar();">IR A PAGAR</button>
</form>

El boton esta dentro del formulario y es de tipo submit o lo puedes poner de tipo button si quieres.

El script queda igual pero agregas un return false al final (antes del ultimo "}" ).

Espero que funcione.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de xve
Val: 3.162
Oro
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

como enviar diferentes forms según radio-button

Publicado por xve (2100 intervenciones) el 24/05/2015 10:33:31
Hola David, he probado tu código, y me funciona perfectamente!!!

Este es el contenido del archivo que he creado:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<script type="text/javascript">
function enviar() {
	if (document.forms.formaPagoForm.paypal.checked==true){
		document.forms.paypalForm.submit();
		alert ("paypal");
	}
	else if (document.forms.formaPagoForm.sabadell.checked==true){
		document.forms.sabadellForm.submit();
		alert ("sabadell");
	}
}
</script>
 
<form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post" target="_top" id="paypalForm" name="paypalForm">
	<input type="hidden" name="cmd" value="_cart">
	<input type="hidden" name="upload" value="1">
	<input type="hidden" name="discount_amount_cart" value="<?php echo $descuento;?>"/>
	<input type="hidden" name="business" value="*************"/>
	<?php echo $item;?>
	<input type = "hidden" name ="charset" value = "UTF-8">
	<input type="hidden" name="currency_code" value="EUR">
	<input type="hidden" name="rm" value="2">
	<input type="hidden" name="return" value="********************* "/>
	<input type="hidden" name="cbt" value = "Volver a Gameshouse" />
	<input type="hidden" name="cancel_return" value = "**************" />
</form>
 
<form action="https://sis-t.redsys.es:25443/sis/realizarPago" method="post" name="sabadellForm" id="sabadellForm">
	<input type="hidden" name="Ds_Merchant_Amount" value="<?php echo $totalFinal;?>">
	<input type="hidden" name="Ds_Merchant_Currency" value="978">
	<input type="hidden" name="Ds_Merchant_Order" value="20151">
	<input type="hidden" name="Ds_Merchant_Titular" value="<?php echo $sesion_usuario['nombre'].$sesion_usuario['apellidos'];?>">
	<input type="hidden" name="Ds_Merchant_MerchantCode" value="************">
	<input type="hidden" name="Ds_Merchant_MerchantName" value="**********">
	<input type="hidden" name="Ds_Merchant_MerchantSignature" value="<?php echo $cadena;?>">
	<input type="hidden" name="Ds_Merchant_Terminal" value="1">
	<input type="hidden" name="Ds_Merchant_Identifier" value="1">
</form>
 
<form id="formaPagoForm" name="formaPagoForm" method="post" action="">
<input type="radio" name="modoPago" id="sabadell" value="sabadell" checked="checked"/>
<input type="radio" name="modoPago" id="paypal" value="paypal">
<button type="input" onclick="enviar()">IR A PAGAR</button>

Veras que funciona bien!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

como enviar diferentes forms según radio-button

Publicado por ludbell (7 intervenciones) el 26/05/2015 02:23:42
Muchas gracias el problema era ese, en vez de imput era submit. Solucionado. Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar