Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/02/2010, 17:38
meg76
 
Fecha de Ingreso: abril-2009
Mensajes: 30
Antigüedad: 15 años
Puntos: 0
Formulario validado sin boton submit

Hola a todos, y felicidade por el portal : aplauso:

Primero que todo disculparme si no acierto el foro. La verdad es que no se si ponerlo como java o como php.

La cuestion es que tengo un problemilla con un formulario, que se me esta resistiendo:

La cuestion es que quiero validar los campos, poner un captcha y enviarlo con estilos en el boton (o sea sin input)... no se si son demasiadas cosas... Me explico sobre el papel:

Primero pongo el java de validacion:

<script type='text/javascript'>
<!--
function check_form(f)
{
if (f.nom.value=='')
{
alert('Falta: Nom');
f.nom.focus();
return false;
}
if (f.empre.value=='')
{
alert('Falta: Empresa');
f.empre.focus();
return false;
}
document.solicitud.confirm.value='yes';
f.submit();
}
-->
</script>

Y luego el formulario que quiero que se envie (lo pongo con un href) para dar estilos al boton:

<form method=POST onsubmit='return check_form(this)' return false;>
<table width=100% border=0>
<tr><td align=left><i>Nombre:</i></td></tr>
<tr><td align=left><input type=text name=nom size=30></td></tr>
<tr><td align=left><i>Empresa/particular:</i></td></tr>
<tr><td align=left><input type=text name=empre size=30></td></tr>

Añado el captcha:
<tr><td>
<img id="siimage" align="left" style="padding-right: 5px; border: 0" src="modules/captcha/securimage_show.php?sid=<?php echo md5(time()) ?>" />
<br />
<a tabindex="-1" style="border-style: none" href="#" title="Refresh Image" onclick="document.getElementById('siimage').src = 'modules/captcha/securimage_show.php?sid=' + Math.random(); return false"><img src="modules/captcha/images/refresh.gif" alt="Cambiar imagen" border="0" onclick="this.blur()" align="bottom" /></a>
</td><td Valign=top>
<i>Codigo:</i><br />
<input type="text" name="code" size="12" /><br /><br />

y ahora viene cuando me mata, porque si le pongo un imput solo lo valida, y si le ponco un onclick lo envia sin validar:

<a href='send.php' target=_blanK class='Button' onclick='this.form.submit()'>
align="absmiddle">&nbsp; Enviar email</a>

</form>

Esto lo pongo para que solo lo envie si el captcha es correcto

<?php

include('modules/captcha/securimage.php');
$img = new Securimage();
$valid = $img->check($_POST['code']);

if($valid == true) {

$cuerpo = "Formulario enviado\n";
$cuerpo .= "Nom: " . $HTTP_POST_VARS["nom"] . "\n";
$cuerpo .= "Empresa: " . $HTTP_POST_VARS["empre"] . "\n";


mail("[email protected]","Formulario recibido",$cuerpo);

echo "<p>gracias por enviar.</p>";
} else {

echo "<p>el codigo no es correcto.</p>";
}
?>

Pensandolo bien quizas me dejo un if en algun sitio, loque no se donde.

Espero que me haya explicado bien.

Gracias por adelantado, a ver si al final lo consigo con vuestra ayuda, poque ahora mismo estoy atrancado aqui.