Formulario

Estoy haciendo una página web y tengo problemas con un formulario ya que el servidor en el que se encuentra no soporta cgi's con lo que me he enterado que puedo hacer que el botón de envío del formulario lance un programa Javascript que transforme los datos a un formato legible antes de que sea enviado por correo.
Mi pregunta es si me podéis decir cual de y de donde me puedo bajar ese programa.

1 respuesta

Respuesta
1
Este es un problema muy común si no quieres pagar nada por este servicio.
Como muy bien has dicho se puede usar un javascript el cual te detallo a continuación.
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
function JSend10(){
var obligatorio = new Array;
var total = JSend10.arguments.length;
var elformulario = JSend10.arguments[0];
var accion = "mailto:"+JSend10.arguments[1];
var enviar=true;
var k=-1;
if (total>2){
for (var i=2;i<total;i++){
obligatorio=eval('elformulario.'+JSend10.arguments+'.value');
if (!obligatorio){
k=eval('elformulario.'+JSend10.arguments+'.selectedIndex');
if (k>-1){
obligatorio=eval('elformulario.'+JSend10.arguments+'['+k+'].value');
} else {
k=eval('elformulario.'+JSend10.arguments+'.length');
for (var j=0;j<k;j++){
if (eval('elformulario.'+JSend10.arguments+'['+j+'].checked')){
obligatorio=eval('elformulario.'+JSend10.arguments+'['+j+'].value');
}
}
}
}
if (!obligatorio){
alert("Lo siento, las respuestas al formulario no estan completas");
enviar=false;
break;
}
}
}
if ((enviar)&&(JSend10.arguments[1])){
alert("Se procedería al envio del correo. Esto es un ejemplo y no se envia nada");
//eval('elformulario.action=accion');
//elformulario.submit();
}
}
</SCRIPT>
</HEAD>
<BODY bgcolor="#FFFFFF">
<FORM method="POST" enctype="text/plain">
<TABLE border="0" align="center">
<TR>
<TD>Nombre:</TD><TD> <input type="text" name="campo1" value=""></TD>
</TR><TR>
<TD>E-mail:</TD><TD> <input type="text" name="campo2" value=""></TD>
</TR><TR>
<TD>URL:</TD><TD> <input type="text" name="campo3" value=""></TD>
</TR><TR>
<TD>Teléfono:</TD><TD> <input type="text" name="campo4" value=""></TD>
</TR><TR>
<TD>Que prefieres:</TD><TD><select name="campo5">
<option value="A">A
<option value="B">B
<option value="C">C
<option value="D">D
</SELECT>
</TD>
</TR><TR>
<TD>Como vas a pagar:</TD><TD>
<input type="radio" name="campo6" value="A">A
<input type="radio" name="campo6" value="B" checked>B
<input type="radio" name="campo6" value="C">C
</TD>
</TR><TR>
<TD align="center" colspan="2"><input type="submit" value="Enviar" onClick="JSend10(this.form,'[email protected]','campo1','campo2','campo5','campo6')">
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
Hay que hacer pequeñas modificaciones:
1.- Poner esta subrutina entre las directivas
HEAD
SCRIPT LANGUAGE="JavaScript"
y
/SCRIPT
/HEAD
(tal y como está en este ejemplo)
2.- En el formulario el boton de envío debe llamar a esta rutina de la
forma
<input type="submit" value="Enviar" onClick="JSend10(this.form,'[email protected]','campo1','campo2')">
Donde debe substituirse [email protected] por la direcion de correo a la que
se desea enviar el formulario, las opciones campo1, campo2, etc son los nombres de los
campos que se deben rellenar de forma obligatoria en el formulario para que
éste se envie. Pueden ponerse tantos campos como se desee separados por comas
y entre comillas simples, por ejemplo
onClick="JSend10(this.form,'[email protected]','nombre','direccion','email','telefono')">
3.- Borrar la linea
alert("Se procedería al envio del correo. Esto es un ejemplo y no se envia nada");
De más abajo o bien poner entre comillas una frase como "Gracias por enviar
sus datos, intenteremos responderle lo antes posible".
4.- Quitar las dobles barras (//) de delante de las lineas
// eval('elformulario.action=accion');
// elformulario.submit();
Ahora están así para que no se envíe nada en este ejemplo
Espero de haberte sido de utilidad y ya sabes, si tienes alguna otra pregunta no dudes en hacérmela.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas