Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Envio un formulario a dos paginas con un click pero no me valida los campos

Estas en el tema de Envio un formulario a dos paginas con un click pero no me valida los campos en el foro de Javascript en Foros del Web. hola estoy enviando informacion desde un formulario a dos paginas nuevas con un mismo boton. en un principio al enviarlo a una sola pagina con ...
  #1 (permalink)  
Antiguo 25/07/2014, 17:11
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 2 meses
Puntos: 3
Envio un formulario a dos paginas con un click pero no me valida los campos

hola
estoy enviando informacion desde un formulario a dos paginas nuevas con un mismo boton.

en un principio al enviarlo a una sola pagina con el siguiente código lo validaba y no me termitia enviarlo (Así funciona como deberia ser)

Código HTML:
<form id="formID" name="form1" method="post" action="pagina.php" target="_self">

<input name="cedula" class="validate[required,custom[onlyNumber]] text-input" type="text" id="Cedula">
<input type="submit" name="Submit" value="Enviar">
</form> 


Luego necesité modificar el codigo porque tenia que enviar ese mismo dato a dos paginas distintas con una sola accion

y usé el siguiente codigo

Código HTML:
<script>
	
function enviar_formulario(){
var form = document.forms.form1;
    form.action = "pagina.php";
    form.target = '_self';	
    form.submit(); 
}

function enviar_formulario2(){
var form = document.forms.form1;
    form.action = "enviacorreo.php";
    form.target = '_new';	
    form.submit(); 
}

</script>

<form id="formID" name="form1" method="post">

<input name="cedula" class="validate[required,custom[onlyNumber]] text-input" type="text" id="Cedula">

<input name="Guardar" onclick="javascript:enviar_formulario();enviar_formulario2();" type="submit" value="Enviar" />
</form> 
Al hacerlo de esta manera logro lo que quiero de enviarlo a las dos paginas distintas, pero ya no me valida lo que ingrese en el campo de texto, entonces en este caso deberia validar que el dato ingresado sea numero pero no lo toma en cuenta y envia el formulario, por que se salta la validacion?


Que estoy haciendo mal? Alguien me puede indicar por que sucede esto? si me pueden aportar una idea o que debo modificar en mi codigo?

lo necesito urgente! por favooooor!!!!
  #2 (permalink)  
Antiguo 25/07/2014, 17:35
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Envio un formulario a dos paginas con un click pero no me valida los campo

¿Será porque en ninguna parte del código haces la validación?

Seguramente se te olvidó colocar el script de validación, de modo que solo te queda añadirlo y voilà !

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 25/07/2014, 17:56
Avatar de Djoaq  
Fecha de Ingreso: septiembre-2012
Ubicación: Barcelona
Mensajes: 271
Antigüedad: 11 años, 7 meses
Puntos: 38
Respuesta: Envio un formulario a dos paginas con un click pero no me valida los campo

Código Javascript:
Ver original
  1. <input name="Guardar" onclick="javascript:enviar_formulario();enviar_formulario2();" type="submit" value="Enviar" />

la validación no te la hace porque aquí en el on-click le estas diciendo que lo envíe..

Yo lo no entiendo porque no lo haces desde php ... mediante un include.. o validando en el mismo archivo...

Yo usando JQuery haría algo así :

Código HTML:
Ver original
  1. <input name="cedula" class="recojo1" type="text" id="Cedula">
  2. <input type="button" class="btonenviar" value="Enviar">

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.   $('.btonenviar').click(function(event){
  3.       event.preventDefault();
  4.       var valorRecojo1 = $('.recojo1').val();
  5.         if ($.isNumeric(valorRecojo1)==true) {
  6.  
  7.             $.post("pagina.php", valorRecojo1.serialize() ).done(function() {
  8.               $('.btonenviar').append('<p>se envió hacia página.php</p>');
  9.               }).fail(function() {
  10.                 $('.btonenviar').append('<p>hubo un problema al enviar hacia página.php</p>');
  11.               });
  12.  
  13.             $.post("enviacorreo.php", valorRecojo1.serialize() ).done(function() {
  14.               $('.btonenviar').append('<p>se envió hacia enviacorreo.php</p>');
  15.               }).fail(function() {
  16.                 $('.btonenviar').append('<p>hubo un problema al enviar hacia enviacorreo.php</p>');
  17.               });
  18.              
  19.         }else {
  20.             $('.btonenviar').append('<p>El valor no es númerico</p>');
  21.         }
  22.   });
  23. });
  #4 (permalink)  
Antiguo 25/07/2014, 19:52
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Envio un formulario a dos paginas con un click pero no me valida los campo

El código no lo copie completo, la validación funciona solo cuando no uso el onclick y sea una sola pagina en la etiqueta form a la q envíe el formulario.
Pero si tienes razón con el onclick, hice el código mas corto para explicarlo más fácil, pero no es posible colocar el javascript dentro del forma para que envíe a las dos paginas? Algo así como el botón llama a las dos funciones, pero en este caso estarían en el form las dos paginas. Eso es posible?
  #5 (permalink)  
Antiguo 25/07/2014, 21:00
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Envio un formulario a dos paginas con un click pero no me valida los campo

Pues, sería cuestión de que fusiones el código de ambas funciones junto con la validación, así realizas una sola llamada y logras hacer todo.

Código Javascript:
Ver original
  1. function fusionada(){
  2.     //Validas
  3.     //Si se superó la validación
  4.     //Realizas el primer envío
  5.     //Realizas el segundo envío
  6. }

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #6 (permalink)  
Antiguo 26/07/2014, 09:37
 
Fecha de Ingreso: febrero-2010
Ubicación: valencia
Mensajes: 146
Antigüedad: 14 años, 2 meses
Puntos: 3
Respuesta: Envio un formulario a dos paginas con un click pero no me valida los campo

Lo solucione de forma mas facil, para el que tenga el mismo problema de dire como..

volvi a colocar el formulario de la manera comun para poder detectar la validacion con el jquery y no usando el boton con onclick que no me tomaba en cuenta la validacion del jquery


index.php
Código HTML:
<form id="formID" name="form1" method="post" action="nuevo.php" target="_self">

<input name="Cedula" class="validate[required,custom[onlyNumber]] text-input" type="text" id="Cedula">
<input type="submit" name="Submit" value="Enviar">
</form> 
luego cree una pagina nueva

donde capturo el dato y con javascript de manera automatica lo envio a las dos paginas distinta

en la pagina nueva este codigo

nuevo.php
Código PHP:
<body>
<form name="form1" id="form1"  method="post" >
  <?php 
$Cedula 
$_POST['Cedula'];
 echo 
" <input type='hidden' size='14' name='Cedula' id='Cedula' value='".htmlentities($CedulaENT_COMPAT'iso-8859-1')."' /> ";
 
?>
</form>




<script language="JavaScript" type="text/javascript">

function enviar_formulario(){
var form = document.forms.form1;
    form.action = "addregistro.php";
    form.target = '_self';    
    form.submit(); 

}

function enviar_formulario2(){
var form = document.forms.form1;
    form.action = "enviacorreo.php";
    form.target = '_new';
    form.submit(); 
    
}

setTimeout ("enviar_formulario();enviar_formulario2()", 3000);
</script>

</body>

Etiquetas: campos, formulario, funcion, input, php
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 16:18.