Mi pregunta es la siguiente, tengo mi web alojada en el servidor de goddady, y dispongo de un formulario en html, que he configurado para que invoque el gdform.cgi que el propio servidor pone a disposición del cliente. El formulario funciona perfectamente cuando se trata de enviar las sugerencias a mi dirección mail. El problema es que a mi me interesa que todos los campos sean obligatorios y que si uno se deja de rellenar, pues al enviar, se redirija a un html dando error.
Anteriormente a alojar mi web en godaddy, la tenia en otro servidor y el formulario funcionaba a la perfección, pero claro lo tenia redirigido a un mailtemp.txt que a su vez invocaba a un archivo cgi-bin.
Les agradeceria que alguien me dijera como puedo configurar el cgi en goddady para que todos los campos a rellenar en el formulario sean obligatorios o de lo contrario vaya a una página de error.
No sé si quizá sea tarde para responderte.
Yo hago la verificación de campos obligatorios sobre el propio formulario antes de invocar el cgi. De esta forma, el usuario puede rellenar los campos que ha dejado en blanco sin tener que empezar de cero. Tal y como dices tú, si el usuario deja algún campo en blanco porque se ha despistado, se invoca al cgi, el cual le abre la web de error y el usuario tiene que volver a ir al formulario y empezar otra vez de cero, lo cual si el formulario es muy grande, es un peñazo ...
__________________
El desarrollo es el resultado del intercambio de conocimientos.- Proverbio propio
No sé si quizá sea tarde para responderte.
Yo hago la verificación de campos obligatorios sobre el propio formulario antes de invocar el cgi. De esta forma, el usuario puede rellenar los campos que ha dejado en blanco sin tener que empezar de cero. Tal y como dices tú, si el usuario deja algún campo en blanco porque se ha despistado, se invoca al cgi, el cual le abre la web de error y el usuario tiene que volver a ir al formulario y empezar otra vez de cero, lo cual si el formulario es muy grande, es un peñazo ...
Claro pero mi formulario es Html. ¿ Que codigo en html utilizas para verificar los campos obligatorios ?. Yo antes tenia esa verificación en un archivo llamado mailtemp.txt
Quizas esos datos hay que añadirlos al propio gdform. cgi que te da el propio server de godaddy.
Por fa te agradecería muchisimo que me ayudaras en este sentido.
Claro pero mi formulario es Html. ¿ Que codigo en html utilizas para verificar los campos obligatorios ?. Yo antes tenia esa verificación en un archivo llamado mailtemp.txt
Quizas esos datos hay que añadirlos al propio gdform. cgi que te da el propio server de godaddy.
No, basta con incluir un pequeño script dentro de la etiqueta head y luego enlazar con él el botón de enviar.
Estos son los códigos:
El del script (lo pones dentro de head, en el formulario htm):
Código:
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_validateForm() { //v4.0
var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
if (val) { nm=val.name; if ((val=val.value)!="") {
if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
if (p<1 || p==(val.length-1)) errors+='- '+nm+' debe contener una dirección mail válida.\n';
} else if (test!='R') { num = parseFloat(val);
if (isNaN(val)) errors+='- '+nm+' debe contener un número.\n';
if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
min=test.substring(8,p); max=test.substring(p+1);
if (num<min || max<num) errors+='- '+nm+' debe contener un numero entre '+min+' y '+max+'.\n';
} } } else if (test.charAt(0) == 'R') errors += '- '+nm+' es un campo obligatorio.\n'; }
} if (errors) alert('Por favor, corrija los siguientes errores:\n'+errors);
document.MM_returnValue = (errors == '');
}
//-->
</script>
Y el código a incorporar para el botón de envío:
Código:
<input name="enviar" type="submit" onclick="MM_validateForm('nombre del primer campo requerido','','R','nombre del segundo campo requerido','','R','nombre del tercer campo requerido','','R','nombre del campo numérico requerido','','RisNum','nombre del campo email requerido','','RisEmail');return document.MM_returnValue" value="Enviar">
Fíjate en la sintaxis según el tipo de datos requerido: 'R' = cualquier dato, 'RisNum'= el campo debe contener obligatoriamente un número, 'RisEmail' = el campo debe contener obligatoriamente una dirección mail.
Espero que te sirva. Ya me dirás ;)
__________________
El desarrollo es el resultado del intercambio de conocimientos.- Proverbio propio