Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/09/2007, 03:55
sargantana
 
Fecha de Ingreso: septiembre-2007
Mensajes: 4
Antigüedad: 17 años, 8 meses
Puntos: 0
Problema con formularios que insertan registro en b datos

Hola a todos. Acabo de ingresar en el foro y aquí os expongo mi problema, a ver si alguien me echa una mano:

Tengo 2 formularios, cada uno en una pàgina asp.

El objetivo es que, una vez el usuario ha llenado todos los campos, se mande un e-mail con esos datos y a continuación se inserte un registro nuevo en una base de datos.

El Formulario_1 sirve para entrar los datos, tiene una función para validar que no estén vacíos y los manda a la pàgina del Formulario_2 . El còdigo que realiza estas acciones es el siguiente:

<form action="pag_formulario_2.asp?" name="Formulario_1" method="post">

<input type="button" value="Enviar" OnClick="verificaCamps(window.document.Formulario_ 1)"><input type="Reset" value="Esborrar">

<script languaje="JavaScript">
function verificaCamps(form)
{
var1=form.parc.selectedIndex;
var2=form.contacte.value;
var3=form.telefon.value;
var4=form.incidencia.value;

if (var1 ==0 | var2 =='' | var3 ==''| var4 =='')
{
alert("S'han d'omplir tots els camps");
}
else
form.submit();
}
</script>


El Formulario_2 presenta al usuario una pantalla de sólo lectura para que confirme los datos que ha entrado. Si los confirma se manda el e-mail y se llena el registro. El código es el siguiente:

<form action="mailto:<%Response.write(Rec2("Email"))%>?s ubject=Incidència" name="Formulario_2" method="post" enctype="text/plain">

input type="button" value="Enviar" OnClick="enviar_form(window.document.Formulario_2) "> <input type="button" value="Cancelar" onclick="Cancela(this)">

<script languaje="JavaScript">
function enviar_form(Formulario_2)
{
Formulario_2.submit();
javascript:history.go(-2);
window.alert("El formulari s'ha enviat correctament. Gràcies.")
}

function Cancela()
{
javascript:history.go(-1);
}
</script>


El problema es que en el momento en que se envía el Formulario_1 y aparece el Formulario_2 ya se inserta el registro en la base de datos, aunque no se manda el e-mail. Esto es un inconveniente ya que a veces el usuario rectifica, se lía, etc, y queda grabado un registro inútil o duplicado.

El código que inserta el registro es:

<%Str_SQL1 = "INSERT INTO .... (continúa)
Set Rec1=Conex.Execute(Str_SQL1)%>


He probado de poner este comando como OnClick, como OnSubmit del Formulario_2 y de todas las maneras que se me ocurren, pero sigue pasando lo mismo, no entiendo por qué se activa desde el Formulario_1. Supongo que podría ser una solución poner este código dentro de la función del Formulario_2 pero esto no sé como se hace ... ¿Alguien puede ayudarme?