Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/11/2013, 16:07
genetius
 
Fecha de Ingreso: noviembre-2013
Mensajes: 2
Antigüedad: 10 años, 6 meses
Puntos: 0
No recargar pagina al enviar formulario

Hola a todos, tengo un problema con el comprtamiento de un formulario de contacto que tengo que añadir a una web.
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:
<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>&nbsp;</td></tr>
  <tr>
    <td colspan="2" align="center"><a class="link-1" onClick="document.getElementById('form2').reset()">Borrar</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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>
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.

Espero haberme explicado bien y a ver si alguno me podeis echar una mano... os lo agradeceria ya que estoy totalmente atascado con esto.