El formulario esta en un fichero .php en un directorio includes, distinto a la ubicación del fichero que lo llama... es decir el fichero index.php que llama al fomulario esta en el directorio raiz y el form.php esta en la carpeta "includes" que cuelga de la raiz.
Desde el index.php lo llamo con un include.
El formulario funciona correctamente, me envia el correo, me muestra los mensajes de error o de confirmación, al pie del formulario.
El problema es que cuando le doy al botón de enviar me recarga la pagina index.php y me vuelve al principio de la pagina... el formulario esta casi en el pie de la página,por lo que es un incordio ya que tienes que volver a bajar para ver el mensaje que nos devuelve el formulario.
os copio el contenido del fichero form.php.
Código:
Lo que necesito es que cuando le de al botón enviar no se recargue la pagina y siga en la posición que estoy para poder ver que ocurre con el formulario.<br /> <form id="form2" method="post" > <fieldset> <table width="100%"> <tr> <td width="auto"><label><strong class="text-2">Nombre:<em>*</em></strong></label> </td> </tr> <tr> <td ><input type="text" value="" id="nombre" name="nombre"> </tr> <tr> <td ><label><strong class="text-2">Email:<em>*</em></strong></label></td> </tr> <tr> <td><input type="text" value="" id="email" name="email"><strong class="clear"></strong></td> </tr> <tr> <td ><strong class="text-2">Mensaje:<em>*</em></strong></label></td> </tr> <tr> <td><textarea name="mensaje" id="mensaje"></textarea></td> </tr> <tr> <td id="errores"><center><span class="text-2"><font color="#FF0000"> <?php if (isset($_POST['nombre']) && isset($_POST['email']) && isset($_POST['mensaje'])) { $name = $_POST['nombre']; $email = $_POST['email']; $mensaje = $_POST['mensaje']; if (!empty($name) && !empty($email) && !empty($mensaje)){ $to= '[email protected]'; $subject = 'Formulario de Contacto'; $body = '<h2><strong>Solicitud de Información</strong></h2><strong>Nombre:</strong> '.$name.'. <br><br> <strong>Dirección Email:</strong> '.$email.'<br><br> <strong>Mensaje:</strong><br><br>' .$mensaje; $headers = "From: ".$email."\r\nMime-Version: 1.0\r\nContent-type: text/html\r\n"; if (mail($to, $subject, $body, $headers)) { echo 'Formulario enviado. En breve contactaremos con usted'; } else { echo 'Ha habido un error en el envío. Intentelo de nuevo más tarde.'; } }else{ echo 'Por favor rellene todos los campos...'; } } ?></font></span></center></td> </tr> <tr><td> </td></tr> <tr> <td colspan="2" align="center"><a class="link-1" onClick="document.getElementById('form2').reset()">Borrar</a> <a class="link-1" onClick="document.getElementById('form2').submit()">Enviar</a></td> </tr> </table> <script type="text/javascript"> $(document).ready(function() { $("#errores").delay(3000).fadeOut('slow'); }); </script> </fieldset> </form> <br>
Espero haberme explicado bien y a ver si alguno me podeis echar una mano... os lo agradeceria ya que estoy totalmente atascado con esto.