Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/04/2015, 14:09
Avatar de GekoDH
GekoDH
 
Fecha de Ingreso: diciembre-2014
Ubicación: Ourense
Mensajes: 58
Antigüedad: 9 años, 5 meses
Puntos: 0
Pregunta Formulario que se envía por email, validación en JS y mostrar mensaje

Hola, a ver si alguien me puede echar una manita, tengo un formulario cuyo contenido se envía mediante PHP por email, todo funciona a la perfección a excepción de que al enviar el formulario el mensaje de éxito/error aparece en una nueva página. Me gustaría poder validar el formulario con JS o JQuery antes de que el usuario le de a enviar (marcar en rojo los campos que están mal) y, una vez enviado el formulario, mostrar el mensaje de éxito debajo del botón sin recargar página.
A ver si alguien me puede explicar el tema este, darme alguna pista o decirme al menos por donde empezar para poder intentar continuar yo, sé que igual es mucho trabajo para pedirlo así por la cara pero es que ahora mismo estoy con el agua al cuello

HTML
Código:
<form action="envio.php" method="post">
                <label>Nombre </label>
                <input type="text" name="name"><br>
                <label>Email</label> 
                <input type="text" name="email"><br>
                <label>Teléfono</label> 
                <input type="text" name="phone"><br>
                <label>Mensaje</label>
                <textarea name="message"></textarea><br>
                <input id="submit" type="submit" name="submit" value="Enviar">
</form>
PHP

Código:
<?php 
if(isset($_POST['submit'])){
    $to = "[email protected]"; // email destinatario
    $from = $_POST['email']; // email del cliente
    $name = $_POST['name'];
    $phone = $_POST['phone'];
    $mes = $_POST['message'];
    $subject = "Formulario web";
    $subject2 = "Copia de su formulario de consulta";
    $message = $name . " con número de teléfono: " . $phone . " escribió lo siguiente:" . "\n\n" . $_POST['message'];
    $message2 = "Aquí tiene una copia de su mensaje " . $name . "\n\n" . $_POST['message'];

    $headers = "From:" . $from;
    $headers2 = "From:" . $to;
    $success = (preg_match("/^[0-9]{9}$/",$phone) && preg_match("/^[a-zA-Z]*$/",$name) && $mes!='' && filter_var($from, FILTER_VALIDATE_EMAIL));
    if ($success){
    mail($to,$subject,$message,$headers);
    mail($from,$subject2,$message2,$headers2); // copia para el cliente
        echo "Formulario enviado. Muchas gracias " . $name . ", en breve contactaremos con usted.";
    }
    else{
        echo "Lo sentimos, se ha producido un error al enviar el formulario, revise su contenido y vuelva a intentarlo.";
    }
   
}
?>