En este tutorial haremos un formulario de contacto capaz de enviar mensajes a un correo electrónico determinado sin recargar la pagina, todo esto usando el metodo AJAX de jQuery y haciendo el envio con PHP.
Para seguir con este tutorial necesitas:
- Un servidor local o remoto
- Conocimiento básico o intermedio de HTML y CSS
- Conocimiento básico o intermedio de Javascript y jQuery
- Conocimiento básico o intermedio de PHP y la función mail()
Estructura de archivos
La organización de archivos que usaremos estará compuesta de un archivo .html que contendrá el formulario, un .css para la decoración, un .js para la validación y la llamada AJAX y un .php para el envio, ademas del .gif que aparecera cuando la llamada AJAX este siendo procesada.
Archivo: index.html
El Markup para el formulario es super sencillo, solo prestad atención a las clases de los campos de texto y a la del boton:
<!DOCTYPE HTML> <html
<head>
<title>Formulario de Contacto</title>
<link rel="stylesheet" href="estilos.css" />
</head>
<body>
<form method="post" class="contacto">
<fieldset>
<div><label>Nombre:</label><input type="text" class="nombre" name="nombre" /></div>
<div><label>Email:</label><input type="text" class="email" name="email" /></div>
<div><label>Telefono:</label><input type="text" class="telefono" name="email" /></div>
<div><label>Mensaje:</label><textarea cols="30" rows="5" class="mensaje" name="mensaje" ></textarea></div>
<div class="ultimo">
<img src="ajax.gif" class="ajaxgif hide" />
<div class="msg"></div>
<button class="boton_envio">Enviar Mensaje</button>
</div>
</fieldset>
</form>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="funciones.js"></script>
</body>
</html>
El div.ultimo, sera el contenedor de: el ajax.gif, el mensaje resultante(div.msg) que saldrá al termino de la llamada AJAX y del boton de envio, los dos primeros estarán ocultos al principio.
Archivo: estilos.css
No hay mucho que explicar en esta parte, estos estilos son en su mayoría decorativos a excepción de los últimos que explicare mas adelante:
/* Estilos Base */
* {
color: #262626;
font: 12px sans-serif;
}
body {
background: #F4F4F4;
}
/* Estilos del formulario */
form.contacto {
margin: 25px auto 0;
width: 440px;
}
form.contacto fieldset {
background: white;
border: 1px solid #E1E1E1;
box-shadow: 0 0 10px #DADADA;
-webkit-box-shadow: 0 0 10px #DADADA;
-moz-box-shadow: 0 0 10px #DADADA;
padding: 25px;
}
form.contacto fieldset>div {
clear: both;
margin-bottom: 20px;
overflow: hidden;
}
form.contacto fieldset div label {
display: block;
float: left;
margin-right: 15px;
margin-top: 5px;
text-align: right;
text-transform: uppercase;
width: 84px;
}
form.contacto input[type="text"],
form.contacto textarea {
background: #F5F5F5;
border: 1px solid #E8E8E8;
color: #626262;
display: block;
float: left;
padding: 8px;
resize: none;
width: 265px;
-webkit-transition: all 0.1s linear;
-moz-transition: all 0.1s linear;
}
form.contacto input[type="text"]:focus,
form.contacto textarea:focus {
background: #F9F9F9;
border: 1px solid #D3D3D3;
outline: none;
}
form.contacto .ultimo {
margin-bottom: 0;
position: relative
}
form.contacto button {
background: #444444;
border: 0 none;
color: #FFFFFF;
float: right;
font-weight: bold;
height: 32px;
padding: 0 10px;
position: relative;
text-transform: uppercase;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
}
form.contacto button:hover {
background: #6A6A6A;
}
/* AJAX Gif y mensajes de exito o fracaso */
.hide {
display: none;
}
.ajaxgif {
position: absolute;
right: 150px;
top: 5px;
}
.msg {
color: white;
font-weight: bold;
height: 32px;
line-height: 32px;
padding: 0 10px;
position: absolute;
right: -155px;
text-transform: uppercase;
min-width: 121px;
}
.msg_ok {
background: #589D05;
}
.msg_error {
background: red;
}
Los estilos marcados son los mas importantes para que este formulario funcione correctamente, lo anterior lo puedes modificar u obviar.
- Linea 75: Con esto ocultaremos al ajax.gif al principio.
- Linea 78: Posicionaremos el ajax.gif para que cuando aparezca lo haga junto al boton de envio.
- Linea 83: En esta linea ubicaremos el mensaje resultante(.msg), este estará afuera del formulario en la extrema derecha(right: -155px), entrara solo cuando la llamada AJAX termine.
- Linea 93 y 96: Estos dos estilos son para colorear el fondo del mensaje resultante dependiendo si resulto ok o hubo algún error.
Si no entiendes muy bien esta parte no te preocupes, va a tomar forma cuando pasemos a la parte de jQuery.
Archivo: funciones.js
Primero capturamos el evento de clic sobre el boton de envio(linea 2) y obtenemos los valores de cada uno de los campos de texto/textarea y los guardamos en variables, luego usamos estas variables para validar el formulario:
(function () { // Funcion anonima
$(".boton_envio").click(function () {
var nombre = $(".nombre").val();
email = $(".email").val();
validacion_email = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
telefono = $(".telefono").val();
mensaje = $(".mensaje").val();
if (nombre == "") {
$(".nombre").focus();
return false;
} else if (email == "" || !validacion_email.test(email)) {
$(".email").focus();
return false;
} else if (telefono == "") {
$(".telefono").focus();
return false;
} else if (mensaje == "") {
$(".mensaje").focus();
return false;
} else { // Si todo paso, aqui ira la llamada AJAX
}
});
})(); // () = Auto-invocación
Nota: En la variable validacion_email(linea 6) almacenamos los caracteres que todo correo tiene, usaremos esta variable para validar(linea 13) el campo email asegurandonos así que el usuario ingrese un correo electrónico valido.
AJAX
La llamada AJAX la ubicaremos dentro del } else { al final de la validación(linea 23):
$('.ajaxgif').removeClass('hide');
var datos = 'nombre=' + nombre + '&email=' + email + '&telefono=' + telefono + '&mensaje=' + mensaje;
$.ajax({
type: "POST",
url: "proceso.php",
data: datos,
success: function () {
$('.ajaxgif').hide();
$('.msg').text('Mensaje enviado!').addClass('msg_ok').animate({
'right': '130px'
}, 300);
},
error: function () {
$('.ajaxgif').hide();
$('.msg').text('Hubo un error!').addClass('msg_error').animate({
'right': '130px'
}, 300);
}
});
return false;
- Linea 23: Lo primero es mostrar el ajax.gif para que el usuario sepa que su mensaje esta siendo procesado.
- Linea 24: Luego creamos una variable que se llamara datos, aqui vamos a juntar todas las variables que declaramos al principio(linea 4) en una cadena que pasaremos via AJAX.
- Linea 25: Llamamos al metodo ajax() de jQuery indicandole el metodo a usar, el url de destino(proceso.php) y los datos a enviar(datos).
- Linea 29: En caso de éxito, primero escondemos al .ajaxgif y seguido sacamos al mensaje resultante con el texto «Mensaje enviado!», ademas le añadimos la clase msg_ok y le cambiamos el valor de la propiedad right a 130px usando una animación que dure 300 milisegundos.
- Linea 33: En caso de error, que pase algo parecido que en caso de éxito, solo que cambiamos el mensaje a «Hubo un error!» y la clase a msg_error.
Y con eso hemos terminado la parte mas tediosa, que es enviar los datos via AJAX, ahora vamos a editar el archivo proceso.php que se encargara de recibir estos datos y enviar el mensaje correspondiente.
Archivo: proceso.php
Leer los comentarios:
<?php
// Guardar los datos recibidos en variables:
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$telefono = $_POST['telefono'];
$mensaje = $_POST['mensaje'];
// Definir el correo de destino:
$dest = "tucorreo@gmail.com";
// Estas son cabeceras que se usan para evitar el chance que el correo llegue a Spam y sea visualizado como HTML:
$headers = "From: $nombre <$email>\r\n";
$headers .= "X-Mailer: PHP5\n";
$headers .= 'MIME-Version: 1.0' . "\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
// Aqui definimos el asunto y armamos el cuerpo del mensaje mediante concatenacion de variables (.=)
$asunto = "Contacto";
$cuerpo = "Nombre: ".$nombre."<br>";
$cuerpo .= "Email: ".$email."<br>";
$cuerpo .= "Telefono: ".$telefono."<br>";
$cuerpo .= "Mensaje: ".$mensaje; // anidamos el mensaje final
// Esta es una pequena validación, que solo envie el correo si todas las variables tiene algo de contenido:
if($nombre != '' && $email != '' && $telefono != '' && $mensaje != ''){
mail($dest,$asunto,$cuerpo,$headers); //ENVIAR!
} ?>
Y con eso terminamos nuestro formulario de contacto en AJAX, este tutorial lo hice para intentar resumir y mejorar en una sola entrega los 3 tutoriales anteriores que publique hace unas semanas, si tienes alguna duda hazmelo saber en los comentarios.
Gonzalo dice
Hola, lo estoy probando cambie el email y tengo abierto el xampp como prueba piloto. Pero no funciona.
Josue Ochoa dice
En un servidor local va a funcionar el AJAX pero no va a enviar el correo a menos que tengas un SMTP instalado y configurado, subelo a un servidor real para que lo pruebes.
Joaco Design dice
Hola, hace poco que encontre tu blog, la verdad es muy bueno, solo una pregunta, para validar que el campo de telefono tengan que ser forzosamente números, como lo valido
Josue dice
Puedes hacerlo con HTML5:
O si prefieres hacerlo con jQuery(para que funcione en todos los navegadores) este código te puede servir.
Omar de Jesús Aquino dice
Saludos Camarada:
Dicen que más vale ser oportuno, que estar invitado y es el caso de este post referido al formulario de contacto, en el mes de febrero voy a presentar una Aplicación Web ante un jurado, para optar al titulo de Técnico Superior en Informática, y este formulario lo estoy necesitando, voy a probarlo. Por cierto voy a enviarle esta entrada a mis compañeros de aula, que tambien andan en esos avatares.
Claudia dice
Josue muchas gracias por el tutorial lo voy a implementar, un pensamiento que aplica a tu persona «La lluvia no se queda pegada al cielo: sólo es sabio quien comparte sus conocimientos». Saludos
jcarlos dice
como puedo poner tu formulario en facebook, el problema esta con el proceso.php. alguna idea, ya se que gusta dar Rptas concretas y precisas, por fa una explicacion.
Josue Ochoa dice
Mediante un iFrame en una pagina de bienvenida
Josean dice
Hola!!
Antes de nada felicitarte por este pos, es muy bueno. Por otra parte he probado el formulario pero no me funciona siempre me sale error, modifique el correo de prueba por el mio y lo subi al servidor que tengo en 1ad1.es y me sigue sin funcionar, es muy extraño. Alguna sugerencia?
Muchas gracias!!
Josue Ochoa dice
Que error te esta saliendo?
Josean dice
esta es la web http://www.ilockergranada.com
que no se envia el mail
Josean dice
perdon la direccion es http://www.ilockergranada.es/web/prueba
Josue Ochoa dice
La dirección que me envias no es accesible.
josean dice
Perdoname, la movi hoy de subcarpeta «prueba2» pero ya me di cuenta q el problema esta en el servidor. q no tiene php ya q es un pack de 1&1.es en q solo es un dominio apuntando a otro hosting. Muchas gracias x tu ayuda!!
Ezequiel dice
Está excelente el formulario, me quedó muy bien en mi web. Solo tengo un problema: quiero agregar un campo más que diga «Empresa», cuando lo agrego el email llega sin el Nombre que se llenó en el formulario, y con el campo Empresa vacío.
Me podrías decir por que sucede esto?
Muchas gracias!!
Josue Ochoa dice
Como ha quedado tu codigo? recuerda que tienes que agregar la nueva variable(Empresa) en cada archivo(html, js y php) y en cada linea donde se tenga que agregar una nueva variable.
Ezequiel dice
Si, recién me di cuanta jajaja. Me quedó excelente ahora!
Muchas gracias por la respuesta rápida!
Voy a frecuentar esta web a partir de hoy, la verdad que tiene aportes muy buenos.
Un abrazo y gracias nuevamente!!
Willy Hernan dice
Muy buen tutorial, realmente agradecido, todo funciona debidamente en el host, lo unico que me gustaria que me guies es tengo un email en live.com windows live, cuando llega a mi bandeja de entrada lo hace en correo no deseado, y una barra superior que dice lo siguiente:
Este mensaje parece sospechoso según nuestros filtros de SmartScreen y lo eliminaremos transcurridos diez días.
Juan dice
Hola Josue,
Para poder probar el tema del envío del formulario vía e-mail debo subir la página a un servidor real, ¿no?
Con WampServer no va a funcionar correctamente, ¿no es así?
Feliz navidad!!
Josue Ochoa dice
Asi es, necesitas un servidor real, feliz navidad a ti tambien!
Madelein dice
Hola! la verdad es que estuve buscando como tres días un formulario php, jquery, ajax que realmente funcione y que además sea sencillo. Este lo consiguió a cabalidad 🙂
Me queda una sola duda. Quiero agregar un campo que no sea requerido, y que el formulario se envie con o sin él, pero no consigo lograrlo. Cómo lo hago? Gracias!
Madelein dice
No te preocupes ! Ya lo resolví 😀
Madelein dice
Ahhhh lo que sí es que no sé porque pero me llegan dos mails en vez de uno xD es un detallito no más
Josue Ochoa dice
Siempre te llegan dos mails? no sera que le das dos veces al boton o algo asi?
Madelein dice
No, siempre me llegan dos mail. Pensé igual que podría ser eso, pero nop
Matias dice
Muy bueno el tutorial. Lo unico es que tengo el mismo problema que madelein. Me llegan 2 veces los correos. Revise y la verdad que no encuentro el error. Alguna idea que podra ser?
Josue Ochoa dice
Es raro, lo acabo de probar en el demo y funciona correctamente, enviado un solo correo.
willy dice
le estaba preguntando que a mi correo llegan los mensajes como spam, no si una forma de modificar los encabezados para que no lo haga, mi email es de messenger live
Stiven dice
Hola amigo, felicitaciones por tu post, me gusta hasta el diseño sensillo que posee este formulario, me funciona bien la llegada de la informacion a mi correo, pero hay un detalle en la validacion de los datos, no avisa que esta errado X campo, simplemente no lo envia, pero no avisa (a la persona que lo use) que esta mal llenado el formulario
ricardo dice
excelente formulario sencillo y práctico, solo tengo un problema, el formulario no me genera errores visibles de campos vacíos, no me envía el mail pero tampoco me sale el alerta al lado del mensaje como debiera:
error: function() {
$(‘.ajaxgif’).hide();
$(‘.msg’).text(‘Mensaje no enviado!’).addClass(‘msg_error’).animate({ ‘right’ : ‘130px’ }, 300);
}
});
es lo que no me está funcionando
Josue Ochoa dice
Este tutorial te puede servir https://tursos.com/tutoriales/javascript/como-hacer-un-formulario-de-contacto-ii-validar-con-jquery mira la parte de la validacion, copia el codigo que genera los mensajes de error.
Stiven dice
Me costo un poco entender que debia copiar, ya que los 2 tutoriales estan hecho de diferentes formas, pero con un poco de razonamiento lo logre. Muchas gracias
claudia fabiana lujan dice
muchas gracias!!
lo hice entero y funciona. Ahora quiesiera lookearlo a mi gusot … pero … no me animo …. ja ja
gracias
Juan Carlos Alvarez dice
Hola, me encanta el tutorial, está muy bueno, pronto lo aplicare, quería escribiré porque quiero animarte a que sigas crenado más de estos excelentes tutoriales, que para mí realidad resultan ser guía para apoyo de mi trabajo, nuevamente gracias por toda tu aportación, hasta pronto…
AlejandroG dice
Hola , muchas gracias por el tutorial la verdad no había realizado un formulario desde cero, y quisiera preguntar si es posible hacer que el formulario se limpie y reinicie después del envío pasados 2 o 3 segundos y cual es la manera apropiada, pues algunas personas no le encuentran uso a esto, pero hay usuarios que a pesar de ver el aviso de mensaje enviado piensan que no llego la información porque siguen viendo los datos en los campos.
Gracias
Josue dice
Puedes utilizar setTimeOut https://www.w3schools.com/js/js_timing.asp
JULIÁN R. dice
Hola, he implementado el formulario y funciona muy bien, solamente que hay que implementar la función para que cuando se envíe no permita más envíos de los mismos datos. Si el usuario hace 5 clicks envía 5 veces los datos!
Josue Ochoa dice
Si, eso se podria hacer que luego de hacer clic al boton se limpien todos los campos, se puede hacer usando $(‘input’).val(«»);
Ivan dice
Me puedes decir donde es que debo poner esta instruccion ya que a mi tambien me interesa hacer que se limpien los datos.
Ivan dice
Ya lo resolvi, de hecho ya hice el formulario a mi gusto, incluso le añadi la validacion con los mensajes de error, esto esta de lujo.
adolfo dice
gracias voy aplicar tu formulario para mi web
eva dice
Acabo de hacer los 3 tutoriales anteriores y por primera vez me inicio en php, java y ahora voy a hacer este para ver el ajax este porque estoy aprendiendo muchísimo, son lo mejor que he encontrado en MUCHO tiempo,
saludos maestro!
Josue Ochoa dice
Gracias por tu comentario, me alegra saber que te haya servido tanto!
cutero dice
Muchas gracias Josue. Excelente post!
Federico dice
Hola estoy tratando de usar tu formulario y me quedo muy bien eh modificado algunas cosas y estoy teniendo el problema que no me manda el mail. realice toda la configuracion en el php y nada. el servidor ocupa un php 5.2 fast CGI la pagina donde la tengo cargada es clarg.femonet.com/index-9.html. Desde ya muchas gracias por tu ayuda
jorge dice
Hice todo el tutorial, cuando le doy click en enviar, sale MENSAJE ENVIADO
pero reviso mi correo y no llega ningún mensaje
me podrían decir cual es el error ?
lo he subido a un hosting donde tengo todo
Josue Ochoa dice
Te has fijado en carpeta SPAM o si has colocado el correo en proceso.php?
May dice
Hola , una pregunta , como podría incluir alertas si no rellenan un campo , y no el simple return ?
Gracias.
Josue Ochoa dice
Revisa el codigo Javascript de este tutorial https://tursos.com/tutoriales/javascript/como-hacer-un-formulario-de-contacto-ii-validar-con-jquery intenta combinarlo.
RORO dice
Hola Josue, muy bueno el post y gracias por compartir tus conocimientos.
Si alguien tiene en su smartphone la opción de javascript deshabilitada, dejaría de funcionar el formulario para dicho usuario?
Si es así se puede solucionar de alguna manera?
Saludos
Josue Ochoa dice
Si, probablemente no funcione, en ese caso tienes que tener un formulario de fallback https://tursos.com/tutoriales/php/como-hacer-un-formulario-de-contacto-iii-validar-y-enviar-con-php
ana dice
hola! muy bueno el tutorial!
El formulario me salio perfecto! uncluso modifique los estilos para adecuarlo a mi web y todo bien, lo unico es que si lo envio a una direccion gmail me llega, pero si le digo que me envie a un hotmail, no me llega nada 🙁
es normal? solo esta diseñado para que llegue a gmail?
gracias de antemano!
Josue Ochoa dice
De seguro te esta llegando a la carpeta SPAM de Hotmail, eso puede ser porque los sistemas anti-spam de hotmail y gmail son distintos.
ana dice
revise la carpeta de SPAM y no hay nada 🙁 hice la prueba desde otra cuenta de hotmail de una amiga y tampoco le llego… sabes como puedo solucionarlo?
Muchisimas gracias de antemano!!
Josue Ochoa dice
Pasame la URL en donde lo estas probando.
Marlon dice
Hola Josue! de antemano muchisimas gracias por el excelente tutorial que me ha sido de gran utilidad; fabuloso que existan personas que comparten su conocimiento como tu… tengo una pregunta: el formulario funciona perfecto y no tengo ningun problema importante con el pero tengo una duda… en que momento aparece el mensaje rojo de error?.. he intentado todo tratando de que ese mensaje aparezca pero no sale; no se si he hecho algo mal con el codigo.. aunque lo he copiado tal cual lo has anotado aqui… mis archivos estan almacenados en un servidor de una pagina web que estoy diseñando… y el mensaje en verde de «mensaje enviado» funciona a la perfeccion!.. gracias de nuevo!
Josue Ochoa dice
El mensaje rojo sale cuando la funcion mail() no funciona o cuando el archivo proceso.php no existe.
Marlon dice
De nueva cuenta…muchas gracias!
Beatriz dice
Hola, antes de nada muchisimas gracias por tu trabajo sin gente como tu, gente como yo estaríamos perdidos. Te cuento, soy criadora de gatos y por el coste que me suponía que me hicieran una pagina y me la actualizasen con mis fotos y camadas, decidía este año aventurarme a aprender como hacer mi propia página y llevarla yo. Hasta ahora no me ha ido mal y me voy defendiendo mirando y mirando por internet. Ayer he visto tu pagina y me ha encantado como explicas todo y con que claridad y facil lo haces. LLevaba tiempo intentando hacer un formulario y hasta hoy no pasaba de un intento. Bueno no me lio mas. He hecho todo como indicas en tu tutorial pero cuando hago la prueba de envio del mensaje no lo recibo ni en mi carpeta de entrada ni mi spam. Creo que hago algo mal con el documento proceso. Yo habro un documento nuevo html y lo guardo como proceso.php, es correcto?. Cuando voy a mi pagina http://www.gatosagradodebirmania.com/index_contacto.html me sale bien la casilla de contacto pero no me envia nada ni a entrada ni a spam.
Me puedes echar un mano porfa?
Gracias de antemano
Bea
Josue Ochoa dice
Haz creado los archivos correspondientes? porque http://www.gatosagradodebirmania.com/proceso.php no funciona o parece que no existe.
Andres dice
Hola Josue execelente tutorial, subí todos los archivos a mi ftp pero al enviar me dice mensaje enviado y no llega a mi casilla de correo el mensaje ni tampoco a la carpeta de span. tambien en el archivo proceso.php puse el email de destino donde quiero que lleguen los mensajes. Me estoy saltando alguna parte o tengo que crear alguna tabla en el cpanel ?
Josue Ochoa dice
No tienes que crear nada, fijate que mail() este funcionando en tu servidor.
Andres dice
me perdi como que este funcionando el email en mi servidor?
maxi dice
hola, estoy tratando de hacer un form para subir los datos a una db de mysql. El caso es que, aplicando tu tutorial (que por cierto me pareció excelente) no logro hacer que se envíen los datos al php que cheque del lado del servidor y guarda los datos.
En resumen, tengo 3 archivos:
1- subir_ofertas.php (contiene el form).
2- chequear_oferta.js (valida datos del lado del usuario y envía los mismos al php que lso sube)
3- chequear_en_serv.php (valida en serv y sube datos)
Los datos llegan al «chequear_oferta.js» pero salta siempre a «$.ajax({» pero sale siempre error.
Espero tu respeusta, gracias.
Josue Ochoa dice
Que error te salta? te has fijado la consola? una vez hice eso de guardar los datos, era muy simple solo habia que modificar el .php donde recibia los datos y hacer una consulta SQL para guardarlos, no cambia nada en el JS.
ivan dice
hola como le añado un SELECT e puesto al selelct con el name=»telefono» pero en el correo que manda aparece como «undefined»
Josue Ochoa dice
Cuando recibes un valor de un select en jQuery lo tienes que hacer asi
$('select.foo option:selected').val();
Adae dice
Buenas, ante todo muchas gracias por el formulario me sirvió de mucho. Siempre tengo una guerra con los acentos y ñ en los formularios y con el tuyo me pasaba la mismo, no se si alguien mas le pasó, yo lo arreglé agregando lo siguiente en proceso.php:
$nombre = utf8_decode( $_POST[‘nombre’]);
$email = $_POST[‘email’];
$telefono = $_POST[‘telefono’];
$mensaje = utf8_decode( $_POST[‘mensaje’]);
Un saludo y muchas gracias
Josue Ochoa dice
Gracias por ponerlo, estoy seguro que le servirá a alguien 🙂
Laura dice
en que parte lo agregaste?
maxi dice
Hola, muchas gracias por tu atención.
Tenías razón en lo que me decías en tu respuesta, gracias de nuevo.
Genial el artículo así como también el resto de aportes que hacés.
Nicolás dice
Muchas gracias por el aporte de conocimiento que ofrecés en este blog. Se aprecia la claridad de los conceptos.
Alfredo Goitia dice
Hola muy bueno el tutorial quisiera saber si realmente podria usar este tipo de formulario usando alguna funcion para crear un archivo de texto en mi servidor local (maneja php) para guardar los datos ya que el mismo se implementara para formulario local de recoleccion de datos de usuarios …. De antemanos muchas gracias !!! saludos desde barquisimeto venezuela !!!
Laura dice
Incluí el formulario en mi página pero no he podido lograr que funciones :'( Me ayudas?
Josue Ochoa dice
Te sale algun error? especifica un poco mas tu problema para poder ayudarte 🙂
Laura dice
siempre me aparece error de envio. Nunca puedo enviar un mensaje… igual que pena no haberte agradecido por todas tus enseñanzas
Nilda Paredes dice
Quisiera saber como funciona esto? quisiera saber a quien va dirigido el mail y en donde lo puedo cambiear.
Espero que puedan ayudarme
Reuth dice
el en archivo php … en la variable $dest. modificas el email y listo.
en PHP se envia un correo con la funcion mail().
Josue Ochoa dice
En el tutorial esta explicado todo, te recomiendo que lo leas detenidamente 🙂
Nilda Paredes dice
Muchas gracias, pero eso ya lo sabia, fue lo pimero que hice, yo queria usarlo desde el servidor local, le modifique lo que me parecio que corespondia, pero aun sige sin funcionarme
Nicolás dice
Tengo entendido que no es posible probarlo localhost. saludos
Nilda Paredes dice
Gracias Nicolas!!!! yo habia hecho un curso donde vos si podias hacer, pero hice supuestamente los paso para que funcione, pero no lo logre.
Josue Ochoa dice
Lo que quieres es que se compare email1 con email2 cierto? mira justo en este tutorial puedes encontrar un codigo de comparacion en la linea 23.
Roberto Tapia dice
Hola Josue, antes que todo, gracias por el tutorial pues de todo lo que he buscado y encontrado es el más simple y claro de analizar y entender.
Te cuento que lo apliqué a un formulario que estoy haciendo y funciona a la perfección tal cual aparece en el tutorial. El asunto es que en mi caso, la validación de los campos ya la tenía programada con jquery.validate inlcuidos los estilos para campos vaciós o erróneos. El código es simple:
$(‘#contacto’).validate({
rules: {
nombre: {required: true},
correo: {required: true},
asunto: {required: true},
mensaje: {required: true}
},
});
¿Cómo podría entonces cambiar la validación que aparece en el manual por la que ya tengo?
Una segunda cosa es que intenté hacer con el mismo php que borre los campos tal como en el otro tutorial pero no me resulta. Sería ideal que los campos se borraran.
Saludos y nuevamente gracias por tan magnífico tutorial.
Roberto Tapia dice
Otro detalle es que cuando el correo es enviado, si uno pulsa nuevamente el botón enviar, el mensaje se envía nuevamente. En apariencia no ocurre nada, pero el mensaje se envia cada vez que que se presiona el botón. Seguramente es porque como los campos están completos nada impide que se vuelva a enviar. Es por eso que sería importante que los campos se borraran una vez enviado.
Una vez más, gracias.
Josue dice
Hola, he escuchado acerca de validate, pero el problema es que en este tutorial la validacion JavaScript esta conectada al envio AJAX, si se pudiera capturar el evento de validate en el que el usuario llena todo correctamente y envia seria mas facil, pero personalmente desconozco como hacerlo (nunca he usado validate js), sin embargo puedes mirar el otro tutorial en el que el envio esta separado del JS.
https://tursos.com/tutoriales/php/como-hacer-un-formulario-de-contacto-iii-validar-y-enviar-con-php
ivan dice
gracias por tu respuesta anterior me sirvió!.
Otra pregunta mas, como hago que un campo no tenga validación?
Josue dice
Simplemente borras ese pedazo de código de la cadena de condiciones, por ejemplo aqui acabo de sacar email y mensaje de la validación original:
if (nombre == "") {
$(".nombre").focus();
return false;
}else if(telefono == ""){
$(".telefono").focus();
return false;
}else{
// Si todo paso, aqui ira la llamada AJAX
}
Francisco dice
Hola amigo este formulario se puede implementar en Blogger, si tenes alguna ideas me lo podrías explicar
Guillermo dice
Muchas gracias por el tutorial. Lo he implementado en mi web sin problemas.
La única putada que al correo en hotmail llegan como spam, por lo que he tenido que cambiarme a gmail, pero ya está (iba a tener que hacerlo en algún momento).
Josue Ochoa dice
Jajaja, Gmail es mucho mejor 🙂
Edgar Durán dice
Hola, esta muy bien descrito y facil de realizar, solo que definitivamente siempre llegan a spam enviando a hotmail? no hay alguna manera de lograrlo?, de antemano muchas gracias!
Tampoco entendi muy bien donde pongo la etiqueta para que en el campo de telefono solo acepte numeros.
Josue Ochoa dice
Los filtros de Hotmail son un poco molestos, tal vez configurar de otra forma el SMTP y cambiar los headers, o algo asi.
Miguel dice
No me llega el correo a mi bandeja de entrada ni de SPAM,probe primero con Hotmail y despues lo probe con GMAIL y no me llega nunca el correo,y la web que voy hacer solo de eso,de formularios!!
Ayuda Por Favor
SALU2.
Josue Ochoa dice
haz modificado en algo tu codigo? tu servidor soporta mail()? no se me ocurre otra cosa.
Miguel dice
Muchas gracias, me ayudaste de mucho, mi servidor no lo tenia activado y por eso no funciona
Gracias,ahora en el foro voy a poner una duda!!
iltse dice
Una duda, estoy haciendo un formulario para el registro de calificaciones, con ordinario, regula y extraordinario, pero el regula y el extraordinario no deben aparecer hasta que se cumpla la fecha de cada uno, es decir que solo se mostrara uno de los tres según la fecha de los exámenes como puedo condicionarlo para que no se vean hasta que sea la fecha?? ayuda!!
Josue Ochoa dice
Podrias hacer la condicion con PHP, usando la funcion https://php.net/manual/es/function.date.php en una comparacion, creo que seria algo asi:
if(date("Y-m-d") == fecha-que-quieres){
echo "";
}
De acuerdo a lo que desees cambias el operador si quiere que sea igual, mayor que, menor que, etc.
Paquisco dice
Hola, soy nuevo en esto y creo que son los primeros tutoriales lógicos que leo. un saludo y mucho ánimo desde Alicante
jaime dice
Muy buen tutorial, sin embargo no he logrado que me llegue al correo, no me sale error, pero no llega nada. En el php puse mi correo y sí tengo habilitado mail en mi servidor, que puede ser? gracias
Josue Ochoa dice
Pueden ser muchas, haz revisado en Spam? prueba a correr una prueba simple de mail() a ver si envia.
Wladimick dice
Hola Josue, me pareció excelente tu tutorial, y estoy incorporando este formulario a un sitio web, pero me surge la duda de como realizar un boton de «reset» que borre todo y nuevamente el usuario escriba los textos, es posible de lograr con este formulario? Saludos.
Josue Ochoa dice
Tal vez con un input type=»reset» value=»Resetear» u otra forma seria con jQuery $(«form»).reset();
manuel dice
gracias por en tuto tenia algunas dudas! de com oenviar el email pero con esto me las resolviste gracias!!!1
Gus dice
Hola Josue, antes de todos GRACIAS ;-). Una pregunta, como puedo hacer para que el formulario una vez enviado se borre?
NanoDesign dice
hola Josue mil gracias por el tutorial me re sirvió…excelentemente explicado, sencillo y anduvo a la primera…muchas gracias…
Alberto dice
Hola, máquina.
LLevo un par de días intentando implementar tanto este formulario como el del tuto que tiene tres partes, y no hay forma.
Pruebo los index tanto en 000webhost como en xtremhost, pero nunca llegan los mensajes. El de este tuto siempre dice que «HUBO UN ERROR», y apenas he tocado tu código.
No sé si aquí debo hacer algo:
}else if(email == «» || !validacion_email.test(email)){
$(«.email»).focus();
Porque me estoy quedando loco.
Sea lo que sea, gracias, eres un tipo excelente.
Juan Camilo dice
Buenas tardes Josue
MUCHAS GRACIAS, me funcionó a la perfección, muy buen tutorial.
Una preguntica, me podrías ayudar a configurarlo para cuando se mande el texto se borre los campos? he leído esto: http://www.w3schools.com/js/js_timing.asp pero la verdad no pude. Te agradecería muchas gracias.
zicmu dice
Exelente tutorial y exelente pagina, me a alludado a aprender muchas cosas (:
pituco dice
yo quiero que me envie a otra pagina diciendome que esta el mensaje enviado pero con action=’quepongoaca.html’ y tambien si deseo que el que llena el formulario aya la opcion de actualizar sus datos
toni dice
Hola Josue, como puedo hacer para que en la cabecera del mail que llega a mi correo solo salga el nombre del destinatario sin el correo? ya que sale el nombre y el mail seguido…muchas gracias por este formulario esta genial, saludos!
Pablo dice
Hola, muchas gracias por el tutoríal, me funciono perfectamente.
Raul dice
Hola, gracias por la entrada, me ha servido de mucha ayuda.
Tengo una duda: ¿Cómo se controla en proceso.php que el mail se ha enviado correctax o no?. Es decir, cómo puedes devolver falso, o lanzar excepción, en caso de producirse un error, para que la llamada ajax entre en la función error? Haga lo que haga me va a la función ‘success’…
Gracias de antemano!!
Josue Ochoa dice
Eso se manejaria en proceso.php, este haría algo como un return y JS lo recibiria, ya que en el JS asi como esta solo se puede verificar si los datos llegaron a proceso.php pero no mas alla, es AJAX mas avanzado, voy a investigar y si lo logro, actualizare el tutorial con esa funcionalidad.
david84 dice
hola Josue.
no se qué tengo mal pero, debería poder recibir los correos y no los estoy recibiendo. tengo un plan de hosting en freehostia (http://www.freehostia.com/watercircle.html), con el que debería funcionar, o sea, la funcion mail() de php. lo único que he cambiado es el campo teléfono y he modificado un poco los estilos. proceso.php lo he puesto dentro de una carpeta llamada util y funciones.js lo tengo dentro de una carpeta llamada js, entonces en funciones.js he puesto la llamada a proceso.php asi: url: «./util/proceso.php».
david84 dice
pero no se porqué razón no recibo los mensajes…
gracias de antemano también.
Josue Ochoa dice
Te haz fijado si te sale algun error en la Consola? (chrome)
julio dice
Amigo, aplique todo eso en mi web, pero no se que error tengo que no me valida en la misma web mi una vez que meto cada dato. Es decir, me valida los demas datos, pero al darle al boton de submit simplemente me envia la web action=»» que tengo en la etiqueta que abre el formulario, es decir
Este es mi codigo form:
¿Cuál es el número de transferencia?
¿En cuál banco realizo el pago?
Seleccione la operadora
<option value="»>
¿Cuál es el tipo de recarga?
¿Cuánto comprara de saldo?
¿Cuál es el número de teléfono a recargar?
Repita el número que necesita recargar.
¿Cuál es su correo?
Enviar
/——-Esta mi función editando el codigo que tu nos regalas:
$(document).ready(function(){
$(«.button2»).click(function() {
numDeposito = $(«.numDeposito»).val();
banco = $(«.banco»).val();
telefono = $(«.telefono»).val();
telefono2 = $(«.telefono2»).val();
correo = $(«.correo»).val();
validacion_correo = /^[a-zA-Z0-9_\.\-]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$/;
if (numDeposito == «») {
$(«.numDeposito»).focus().after(‘Ingrese el número de transferencia.’);
return false;
}else if(banco == «»){
$(«.banco»).focus().after(‘Ingrese el banco donde pago.’);
return false;
}else if(telefono == «»){
$(«.telefono»).focus().after(‘Igrese el número de la recarga.’);
return false;
}else if(telefono2 == «»){
$(«.telefono2»).focus().after(‘Ingrese nuevamente el número de la recarga.’);
return false;
}else if(correo == «» || !validacion_correo.test(correo)){
$(«.correo»).focus().after(‘Ingrese su correo.’);
return false;
}else{
$(‘.ajaxgif’).removeClass(‘hide’);
datos = ‘numDeposito=’+ nombre +
‘&banco=’ + banco +
‘&telefono=’ + telefono +
‘&telefono2=’ + telefono2 +
‘&correo=’ + correo;
$.ajax({
type: «POST»,
url: «procesodecompra.php»,
data: datos,
success: function() {
$(‘.msg’).text(‘Mensaje enviado!’).addClass(‘msg_ok’).animate({ ‘right’ : ‘130px’ }, 300);
},
error: function() {
$(‘.msg’).text(‘Hubo un error!’).addClass(‘error’).animate({ ‘right’ : ‘800px’ }, 300);
}
});
return false;
}
});
});
julio dice
como te puedo enviar mi codigo form para que lo veas? o cuantos dolares cobras por la asesoria?
Josue Ochoa dice
codigo
Josue Ochoa dice
Haz mirado la consola? sino mandame la URL de tu formulario.
julio dice
http://sidve.com.ve/Recargatusaldoaqui.php Ahi la web que ando reeditando. Los select viene desde mi base de dagos en phpmyadmin, no me salen errores en consola. No se que hacerle ya.
Gon dice
Hola, me gusta mucho este formulario. Mi pregunta es, si no rellenas nada y le das al botón de envíar el cursor se pone en el primer campo, como se puede hacer para que esto se indique de una mejor forma visual?, por ejemplo que te salga un mensaje indicandote «Por favor introduzca su nombre», o el campo no rellenado se marque en rojo, no se algo similar. Gracias
Josue Ochoa dice
Combinalo con el codigo de este tutorial
Gon dice
Gracias Josue.
Antonio dice
Hola Josue, excelente tu tutorial y tu gran ayuda. Tengo las siguientes consultas:
1.- Como puedo hacer que en el botón de enviar mensaje aparezca la manito y no solo el cursor cuando se pasa sobre el, podrías indicarme el código para agregarlo en esa parte??.
2.- Podrías indicarme el código para generar mensajes de alerta cuando un usuario no rellene un campo. Necesito que aparezca un mensaje al lado del campo que no ha rellenado y que diga por ejemplo «falta ingresar email», esto es muy habitual verlo en los formularios de contacto. Es bueno para guiar a la gente.
De antemano gracias por las posibles respuestas. Saludos
Josue Ochoa dice
Checa este tutorial, aqui se manejan los errores de forma visual por parte del cliente, para lo de la manito seria solo CSS:
form.contacto button:hover {
cursor: pointer;
}
julio dice
A la final no me respondiste nada a mi Josue!
Josue Ochoa dice
Cual es el problema especificamente, alli lo estoy probando y valida correctamente.
Julio dice
mi problema es que valida todos los campos de datos anteriores al ultimo que es «correo», incluso me valida si el usuario ingresa un correo o no, pero cuando le doi a enviar no me envía el mensaje de enviado correctamente en la mis pagina sin recargarla, por el contrario me envía al action, es decir, redirecciona el index, que es donde tengo el formulario al action=»procesodecompra.php» dentro del accion solo tengo la consulta de insertar los datos en la tabla de mi base de datos y en el uso de la function mail para enviar los datos a mi correo.
Josue Ochoa dice
Es posible que ese sea el problema, que le pongas un action al form, haz probado dejando el action en blanco?
Julio dice
Si dejo el action en blanco, no podre enviar por $_POST los datos, que es lo que quiero, aunque ya lo probe y nada, igual no me valida en la misma web 🙁
Josue Ochoa dice
Prueba quitar todos los JS y dejar solo jQuery y https://sidve.com.ve/js/funcionenvio.js, tal vez pueda ser un conflicto.
Gon dice
Hola Julio, e mirado el código que indicas mas arriba y tienes mal varias comillas (las de cierre) en la línea 2: «.button2″, en la línea 6: («.telefono2″), y línea 19: $(«.telefono2″).focus, si quieres te pego aquí uno mio con tus datos.
Un Saludo
Julio dice
Ya corregí esas comillas y sigue dando el mismo problema, me envía al action, redirecciona el index, que es donde tengo el formulario al action=»procesodecompra.php» dentro del accion solo tengo la consulta de insertar los datos en la tabla de mi base de datos y en el uso de la function mail para enviar los datos a mi correo.
Dario dice
Me ha gustado mucho tu formulario, y me gustaría implantarlo en una web, pero en el hosting de esa web, no hay php, y en mi server si, y te agradecería mucho, me expliques como logro q el form en el html, se comunique con el php en el otro servidor y le envíe el mensaje de success y aparezca el mensaje de «Enviado»
Gracias de antemano.
Josue Ochoa dice
No es posible ya que POST solo funciona de forma local osea en el mismo servidor, sin embargo te doy una idea, usa iframes, pon un codigo similar a este en una pagina HTML en el servidor que no soporta PHP y en el que si creas el contacto.php:
Sergio dice
¡Buenas Josué!
Antes que nada, felicitarte por este excelentérrimo tutorial, ya que es la primera vez que me he logrado entender cada uno de los pasos cuando se trata de AJAX, PHP y JQuery, ¡enhorabuena!
Ahora viene mi duda, y es que no consigo recibir los mails a mi bandeja de correo (el cual es un info@servidor.com). De hecho, para hallar la respuesta me he bajado el pack que adjuntas, colocado mi correo en el php, y subido todo el paquete directamente a mi servidor, sin tocar anda más. Y sigue sin funcionarme (a pesar de salir «¡mensaje enviado!») . Así que algo debo de estar haciendo realmente mal!
¡Si pudieras ayudarme te lo agradecería apra la eternidad!
Sergio dice
Perdón, el correo sería info@dominio.com, ¡vaya errata la mía!
Josue dice
Probaste con una prueba simple de mail()?
mail("info@dominio.com", "Asunto", "Mensaje");
leandro dice
Hola que tal, muy bueno el formulario. Probé subirlo al server y funciona todo bien. El unico problema es que no se envia al corre, probre con varios correos, tanto Gmail como Hotmail, y no llega ni siquiera como spam. Cual será el problema? Gracias!
Josue dice
Haz una prueba simple con mail() y si no envia es un problema del servidor:
mail("correo@gmail.com", "Asunto", "Mensaje");
leandro dice
Si, recien estaba explorando el servidor y me di cuenta que tenia desactivado el script de sendmail… Ahora funciona perfecto! Gracias!
Gabriel dice
Hola Josue, antes que nada, quiero agradecerte por este espacio, realmente nos estas ayudando muchisimo a quienes estamos comenzando a incursionar en este terreno. Realmente es muy didactico tu material.
Bien, quiero hacerte una consulta. Si para validar un SELECT se añade:
$(‘select.foo option:selected’).val();
¿Qué debo añadir para un imput checkbox, y un imput radio?
Desde ya muchas gracias por tus aportes.
Saludos desde argentina! 😉
Josue Ochoa dice
Este post te aclarara las dudas 🙂
Luis dice
Yo tengo un problema. Que en el contenido del mail lo único que no se me envía es la variable $email
No tengo ni idea de que puede ser.. ¿Me puedes echar una mano?
Gracias por el tutorial!
Josue Ochoa dice
Lo haz concatenado en el $body? ($body .= $email)
juan pablo dice
Buenas .. esto solo funciona si tengo el site armado en html 5 ?? porque lo adapté a una página que estoy haciendo (html 4), lo subo al servidor pero no envía el mail a ninguna casilla .. me fije y el servidor tiene una version de php 5.2 ..
alguna idea ?? gracias
Josue Ochoa dice
Nop, esto no depende de HTML, sino de jQuery (la version), de que el servidor te permita AJAX y por ultimo de que las funciones de PHP necesarias esten activas.
carlos A. Restrepo dice
Hola yo le adapte que despues de enviar el correo limpie los datos del formulario con jquery de esta forma
form html
adicionamos el id=»contacto»
en la ultima linea del evento success: function()
adicionamos
$(«#contacto»).reset();
y por fuera del codigo principal adicionamos la funcion que resetea los campos
jQuery.fn.reset = function () {
$(this).each (function() { this.reset(); });
}
bueno espera les sirva
Josue Ochoa dice
Gracias por la aportación Carlos 🙂
Luis dice
A mi eso no me llega a funcionar :/
Envía el correo pero no limpia los campos del formulario.
Al principio del archivo functions.js tengo lo siguiente:
jQuery.fn.reset = function () {
$(this).each (function() { this.reset(); });
}
y luego en el evento success de ajax esto:
success: function() {
$(‘#form1’).reset();
},
Josue dice
Te haz fijado si no te sale algún error en la consola?
wladimick dice
Probe con el reset al formulario pero no me funciona, no entiendo este es mi codigo nose adonde esta la falla, llega el correo pero queda pegado el cargador y no aparece el mensaje de mensaje enviado
$.ajax({
type: "POST",
url: "proceso.php",
data: datos,
success: function() {
$('.ajaxgif').hide();
$('.msg').text('Mensaje enviado!').addClass('msg_ok').animate({ 'right' : '130px' }, 300);
},
success: function() {
$('#contacto').reset();
},
error: function() {
$('.ajaxgif').hide();
$('.msg').text('Hubo un error!').addClass('msg_error').animate({ 'right' : '130px' }, 300);
}
});
return false;
Josue Ochoa dice
Te sale algo en la Consola?
Wladimick dice
no nada, no sale error , lo que si le había agregado esta linea de código al final
jQuery.fn.reset = function () {
$(this).each (function() { this.reset(); });
}
pero no entiendo, envía el correo, resetea el formulario, pero se pega en función de ajax y no pasa al mensaje , de forma que el usuario sepa que se envió el correo
Wladimick dice
Lo logre hacer funcionar!!! que bien!! tengo una duda cuando el usuario ingrese sus datos y envié el formulario, existe la posibilidad de enviarle una respuesta a su correo con un breve mensaje de «gracias por tu datos, pronto nos pondremos en contacto contigo» ?
Jose Arturo dice
tengo una duda, cuando juantas todas las variables en una sola (datos) para enviarla junto a la llama ajax, pones un & despues de la primer varaible y asi al resto, esto es necesario??
yo tengo algo asi, en lugar de usar css para los campos del fumulario me los traigo con:
var sexo = $(«#sexo»).val();
estatura = $(«#estatura»).val();
tez = $(«#tez»).val();
cabello = $(«#cabello»).val();
—–
var datos = ‘sexo=’+ sexo + ‘&estatura=’ + estatura + ‘&tez=’ + tez + ‘&cabello=’ + cabello;
es esto correcto????
Josue Ochoa dice
Si, es necesario para separarlas.
Jose Arturo dice
otra cosa, con el css modificas el comportamiento del elemento button verdad, xq si le pongo algun evento javascript como onmouseover o onmouseout, truena la aplicacion y solo hago lo siguiente cuando le doy click al boton:
$(«#boton_activar»).click(function() {
$(‘.ajaxgifposicion’).removeClass(‘hide’);
$(‘.ajaxgifposicion’).hide();
$(‘.msgposicion’).text(‘Activada!’).addClass(‘msg_error’).animate({ ‘right’ : ‘130px’ }, 300);
});
el boton lo tengo igual en un div class ultimo con los mismos elementos que tu describes
ACTIVAR
Josue dice
Pero el CSS es solo cosmetico no deberia generar conflictos en la aplicacion, fijate que no sea otra cosa.
Jose Arturo dice
Gracias amigo, creo que es mala idea utilizar varios css, creo que eso es lo que me causo conflicto! saludos y que te la pases bien en estas fechas!!!
Josue dice
Me alegra que hayas solucionado tu problema, saludos a ti tambien y que la pases bien 🙂
marco dice
Cuando saldran mas ejemplo de ajax y unas paginas que no sugieran para aprender a mas detalle sobre ajax
Josue dice
Pronto 🙂
Antonio dice
Hola Josue,
Te escribo porque en este tipo de tutoriales creo que siempre ocurren cosas muy parecidas. Yo, con una web ya montada, el gran problema que tengo es que, al utilizar nombres de archivos y partes del codigo tan tan comunes como `texto´ `mensaje´ procesos.php, funciones.js… Me entra en contradiccion con casi todo lo que tengo, de tal manera que tengo que cambiar, en cada una de las partes, los nombres.
¿No crees que seria mejor si lo personalizaras?
Por todo lo demas esta genial, aunque por supuesto no me funciona
Josue dice
Pues eso seria trabajo tuyo, un tutorial no es un código que copias y pegas, esta hecho para que la gente aprenda y por eso se usan nombres tan generales, porque son mas simples y entendibles.
Javier dice
Hola que tal.
Ya hice todo, lleno todos los campos y envio el comentario me aparece que ya se envio correctamente pero no me llega nada a mi correo.
Josue dice
Te haz fijado si mail funciona en tu servidor? haz una prueba simple:
mail("correo@gmail.com", "Asunto", "Mensaje");
Javier dice
Sigue sin funcionar Bro.
Josue dice
Pues entonces es problema de tu servidor, mail() no funciona.
Antonio dice
Que tal Josue, tienes razon, mi post anterior no ha estado bien. Estoy seguro de que has trabajado muy duro en el formulario.
A lo que me refería era a lo siguiente: si por ejemplo utilizas la clase (class) `nombre_tut_1´ en lugar de la clase `nombre´ -digo esto por ejemplo-, pues no habrá problemas con los CSS de otras cosas que tengas en la web con la clase `nombre´.
Entiendo que eso podemos cambiarlo nosotros, pero hay que hacerlo en el .js, en el .php, en el HTML y en el CSS. Y esto con varias clases o con varias cosas que tengan nombres recurrentes. Es como meter mas variables a los posibles conflictos que pueden surgir luego.
Solo era un consejo. Disculpame si no me he sabido explicar, se que has trabajado muy duro. Yo continuare con este ejemplo a ver si lo consigo.
Un abrazo.
Josue dice
Si te entiendo, voy a tomarlo en cuenta, tal vez mi respuesta fue un poco agresiva, gracias por el consejo de todos modos 🙂
Cintya Linda dice
hola josue, el tutorial esta genial!!!! 🙂
solo que no me llega el mensaje a mi correo. cambie esto:
$dest = «info@publidek.com»;
tal y como señalas en el tutorial. Que estoy haciendo mal ??? o que falta?
mil gracias por tu ayuda
Cintya
Josue Ochoa dice
Hola Cintya, crea un nuevo archivo PHP con el siguiente contenido y ejecútalo:
Cintya Linda dice
muchas gracias Josue, pero aún siguo con el mismo problema.
if($nombre != » && $email != » && $telefono != » && $mensaje != »){
mail($dest,$asunto,$cuerpo,$headers); //ENVIAR!
}
este puede ser el problema?? mil gracias Josue
Josue Ochoa dice
Probaste a hacer una prueba simple de mail() para ver si tu servidor puede enviar?
Ivan dice
Saludos,
A mi no me funciona, lo subi a godaddy en un hosting real y me da el mensaje de enviado, pero no llega al email que le puso como destino. He repasado el codigo muchas veces y na de na, no encuentro donde puede estar el error.
Josue dice
¿Haz probado hacer una prueba simple de mail()?
Ivan dice
Disculpa pero si me funciono, lo que sucedio es que tardo un poco en llegar y me desespere un poco. Esto esta de lujo. Muchisimas gracias.
Matías dice
Josue, un capo total, me encantó el tutorial y aprendí mucho.
Lo que si quería consultarte, era que probé el formulario dentro de un html y todo ok; pero cuando intenté colocarlo en un html donde coexistía con un nivoslider y un lightbox, me trajo los siguientes conclictos:
– no carga el nivoslider (pude hacer que lo cargara si quitaba y lo colocaba en el header, pero de esta manera el formulario no funcionaba.
– no solamente no carga nivoslider, sino que se vuelve a cargar toda la página al presionar el botón «enviar mensaje»
Aclaro que cuando coloqué nivoslider y lightbox inicialmente antes de agregar tu formulario, tuve el conflicto entre ambos (no funcionaba lightbox) y lo solucioné agregando jQuery.noConflict(); al final del script de nivoslider en el html.
Pero ahora esto me ha superado. Alguna sugerencia???
Josue dice
¿Qué te sale en la consola?
Matías dice
Lo logré!!!
Solución:
– En funciones.js reemplazar la primera línea por jQuery(document).ready(function($){
– En el html, eliminar del formulario y eliminar de nivoslider.
– Finalmente en el html colocar entre y lo siguiente:
Saludos, espero les sirva!
Matías dice
Me adelanté a cantar victoria, el problema se soluciona en chrome, pero no en internet explorer ni firefox.
Se admiten sugerencias.
Josue dice
Matias, para postear codigos lo puedes hacer de la siguiente forma: <code></code>
Josue dice
:/ Pasame la URL donde esta para mirarlo.
Matías dice
Te paso las dos direcciones para que veas dónde me funciona y donde no:
– Acá todo ok: http://www.domuslaonica.com/nuevaweb/consultas.html
– Aquí me deshabilita nivoslider y lightbox: http://www.domuslaonica.com/nuevaweb/torre_giulietta.html
Lo de la consola es medio largo, hay cosas de google maps, aunque funciona todo ok.
Matías dice
Josue, los scripts que fui escribiendo en mis mensajes anteriores veo que no se postean. Si es posible contactarte a alguna casilla, lo agradecería.
Matías dice
Bueno las direcciones son las de arriba, pero ya lo solucioné, como había puesto antes, y lo lee bien en IE, en FF y en Chorme:
Para tener nivoslider, lightbox y el formulario en la misma página html:
– En funciones.js reemplazar la primera línea por jQuery(document).ready(function($){
– En el html, eliminar
del formulario y eliminar
de nivoslider.
– Finalmente en el html colocar en el header lo siguiente:
A mi me funcionó primero en Chrome y luego al rato en los otros navegadores. No sé por qué tardó en tomar bien el cambio de la primera línea de funciones.js. Tal vez un simple tema de caché. De igual manera, de esta forma queda todo solucionado.
Saludos, gracias por el formulario y espero que mi aporte contribuya.
Josue Ochoa dice
Si, el problema al parecer era por tener jQuery repetido dos veces.
Ivan dice
Pocas veces me sale todo bien, aunque tengo que decir que me fue un poco dificil por mi desconocimiento en algunos topicos. Hice unas cuantas pruebas y todo salio como esperaba.
Muchas gracias por esto post, me ha servido muchisimo.
Edgar Durán dice
Hola que tal, me funcionó perfecto todo, solo me gustaría saber si hay alguna manera para que en lugar de llegar a un solo correo llegue a 2. Muchas gracias de antemano!
Josue dice
En proceso.php, a la variable $dest le agregas el correo adicional con una coma:
$dest = «tucorreo@gmail.com, tuotrocorreo@gmail.com«;
gabriel dice
Edgar, además puedes debajo de $dest, agregar $dest2 = «tuotrocorreo@gmail.com» y en los headers colocarlo como BCC (copia oculta): $headers .= «Bcc: $dest2\r\n»;
Saludos.
PD: Excelente Post!.
Ramón dice
Buenos días Josue, me gusta mucho como está planteado este formulario, sencillo y funcional. Solo tengo una duda. Al enviar el formulario, que estoy probando en arsys.es, como remitente del email que me llega, me sale algo como «nombre@llgg571.servidoresdns.net».
¿Me podrías decir cómo podría personalizar el asunto y remitente?
Muchísimas gracias
Josue Ochoa dice
Mediante header:
$headers = ‘From: webmaster@example.com‘ . «\r\n» .
Ramón dice
Muchas gracias Josue!
martin dice
cual seria el codigo para agregarle un CCO al mail de la persona que lleno el formulario.
Josue Ochoa dice
Asi:
$headers .= «Bcc: tu@mail.comn«;
Martin dice
Josue Ochoa mi idea es la siguiente:
una vez que el mensaje sea enviado le llegue una copia a la persona que completo dicho formulario.
ej.:
Hemos recibido su mail a la brevedad sera contactado por uno de nuestros profesionales.
Su consulta fue:
aca va la copia del mensaje que el escribió.
Si agrego:
$dest2= //como le paso el valor del campo mail que la persona puso?
$headers .= “Bcc: $dest2\r\n”;
o hay una forma mas simple?
desde ya gracias.
Josue Ochoa dice
Agrégalo con una coma:
$dest = «tu@correo.com, $email»);
kika dice
Hola disculpa utilize tu codigo de php y lo modifique a mis necesidades pero no me envia lo correos pero no me marca ningun error. me podras ayudar por favor. Me urge
Ber dice
Buenas, una consulta…como podria hacer para que despues que se envie me redirija a un html o url cualquiera, gracias
Maria dice
hola! lo primero, muchas gracias por compartir esta data.
Lo segundo, modifique el correo, no da ningun error, pero no me llega, sera que tarda un tiempo??
Cuanto tengo que esperar??
Josue, feliz domingo y nuevamente, gracias por esta informacion!!
Love data, free data
josueochoa dice
Hola Maria, deberia llegar instantaneamente, sin embargo no funcionara en un servidor local o si el correo no existe.
Maria dice
algo estoy haciendo mal…
josueochoa dice
Lo estas probando en un servidor real?
Maria dice
Josua, ya lo resolví. No se de donde estaba arrastrando un error.
Estaba en servidor real, no se que era porque decidi borrar y volverlo a hacer porque me estaba volviendo loca…… 😛
Gracias igualmente
josueochoa dice
Que bueno que lo hayas resuelto, recuerda que siempre puedes revisar el registro de errores de PHP desde el panel administrativo de tu hosting. Muy lindos tus cuadros por cierto =)
Rhulk Horde dice
Resulta que tengo el mismo problema que maria.
Tengo server online con apache y php 5, relleno los campos del formulario le doy a enviar y todo bien me sale que se ha enviado correctamente. Pero no me llega :/
Alguna ida de donde esta el fallo.?¿
Rhulk Horde dice
Es mas aqui se puede ver como aparentemente funciona pero el email no llega
http://ks359250.kimsufi.com/
Rhulk Horde dice
por cierto cuando llamamos al codigo proceso.php que se encarga de mandar el correo?
WebTursos dice
La funcion mail(), en la linea 25, lo que puedes hacer es: hacer pruebas en un PHP aparte, pruebas de mail() para ver si te el servidor en el que estas te deja enviar correos, pruebas como esta:
if(mail(‘tu@email’, ‘Asunto’, ‘Mensaje’)){
echo «mail enviado»;
} else {
echo «hubo un error»;
}
Si sale «hubo en error», es porque no te deja enviar, tienes acceso al registro de errores de PHP?
Rhulk Horde dice
he creado el codigo que me has dicho y sale por la opcion «hubo un error»
¿Como puedo ver el registro de errores de php? El servidor esta montado en ubuntu 10 y tengo acceso visual a él.
Rhulk Horde dice
Creo que el log se define aqui /etc/php5/apache2/php.ini
modificando las sentencias:
log_errors = on
error_log = /home/user/logphp.log
pero no se genera el logphp.log no se que estara mal :/
Rhulk Horde dice
El servidor tendria que tener un servicio de correo smtp ?
Maria dice
No lo logro… El Php, solamente estoy cambiando mi mail para que me llegue a mi correo, algo no estoy haciendo bien, pero no se el que.
Diego Zarate dice
Hola genio!! vos podes ayudarme ! , de hecho , sos el único que puede hacerlo! casi de rodillas te cuento mi problema:
Resulta que ice todo el tutorial que escribiste aquí mismo , todo salió perfecto, inclusive le agregue un cuadro de selección tipo drop down el cual también llega detallado a mi mail y también le agregue respuesta automática al cliente que rellena mi formulario pero!, como vos bien decías mas arriba ,cada uno puede darle el diseño css que mas le guste. Ok yo le di el mío para que sea visualmente igual que mi pagina web (en construcción) sin dejar de colocar debidamente las css de las líneas 75,78,83,93 y 96 en su respectivo lugar igual que el tutorial. Realmente me encanta y todo funciona perfecto , además de visualizarse encuadrado y genial (lo he probado tanto en dreamweaver mientras lo creaba como en la pagina subida al hosting) el único y mas importante de mis problemas es que no logro ubicar el botón envío, el gif y el cuadro verde «mensaje enviado» :
Enviar Mensaje
en donde deberían ir seguir mi diseño, me estoy volviendo loco hace 5 días (ni uno mas ni uno menos) pero ya no doy para mas, he intentado de todo y no logro que aparezca perfectamente, que hago? . saqué unas capturas para que veas como es mi formulario y donde deberían ir esos tres ítems…
La primera esta sin los dichosos botones y la segunda (botón naranja y botón verde) serian los puntos que no pudo colocar (botón enviar, mensaje verde y el circulito de pensar que iría debajo de donde esta el mensaje verde cuando el mismo aun no ha aparecido:
Diego Zarate dice
Gracias por responder amigo! , bueno ya me fije y el div.ultimo estaba bien , estaba en posición: relative y los otros dos en absolute, pero no se si ese es mi problema en realidad, a ver acá va una nueva captura, fíjate que el cuadro del botón , el gif y el mensaje (al cual cuando logre centrar todo debo colocarle el recorrido correspondiente, por que mi formulario es distinto) al ponerlo siempre se lleva consigo a otros casilleros y si logro sacarlo igualmente no veo mucho la manera de alinearlo y que me quede como en la imagen de mi primer consulta. De todas formas creo que algo esta raro en todo eso ya que al ponerlo en donde lo ponga, no importa, siempre mete dentro de si mismo un par de los otros ítems, como «nombre, teléfono etc.».
Diego Zarate dice
captura 2:
Diego Zarate dice
Ya lo solucione por mi cuenta.
fernando dice
Yo tengo un problema al correo solo me llega la ciudad y el mensaje este es el formulario saludos
http://www.prime.net.co/contacto/
josueochoa dice
Tal vez no estas añadiendo los nuevos campos al cuerpo del mensaje en proceso.php.
sabry_2802 dice
Hola!. muchas gracias por el aporte.
Probe el formulario, me llega perfecto, el problema es que no borra los campos luego de enviarlo ni tampoco me aparecen los textos de validación.
Si no completan todos los datos no me aparece el cartel de validación, no se envía pero tampoco avisa que deben completarlo.
Podras indicarme como solucionarlo?
Gracias!
josueochoa dice
Checa este formulario, https://tursos.com/como-hacer-un-formulario-de-contacto-i-html-y-css/
Kai dice
MOSTROOOOOO; GRANDEEEEEEEE . Hermoso ejemplo XDD muchisimas gracias amigo !! q dedicacion hacer todo tan bien explicado !
Dani dice
Hola Josue!
Simplemente quería saludar y felicitarte por el blog. La verdad es que me ha sido de bastante ayuda y está todo muy bien explicado.
You’re the Master! 🙂
Alejandro Geier dice
Hola Josué, podrías darme una mano con un fomulario similar, que solo tenga el formulario suscribir, pero con phplist?
Quique dice
Hola Josue, me voy a poner con este formulario para que no se recargue la página…
Y comentarte que me he descargado el ejemplo y el archivo de código se llama ‘functions.js’, pero en el archivo html llama a ‘funciones.js’, por lo que no me iba…
Muchas gracias por dedicarnos tu tiempo.
josueochoa dice
Gracias por notarlo, voy a revisar.
mauricio dice
Hola se ve interesante el formulario pero mi pregunta es donde esta el scrtip o el archivo funciones.js que no lo veo y ademas el enlace para descargar el ejemplo no funciona ya que hace días estoy buscando ese tipo de formulario que este validado con jquery y sea enviado por medio de ajax.
josueochoa dice
Prueba ahora https://webtursos.s3.amazonaws.com/web/source/cf_ajax.zip
RubensS Ten dice
Esta genial amigo lo probare y te comentare, soy nuevo en esto y lo que deseo es generar un form con datos similares pero voy a incluir el recaptcha y mostrarlo en un modal al dar click en un elemento de menu espero lograrlo gracias a tu ejemplo =)
RubensS Ten dice
Hola nuevamente am una pregunta al enviar el correo en la parte de proceso.php el dominio esta con gmail ¿solo funciona para ese dominio?, probe con hotmail pero no lo enviar espero tu respuesta gracias
josueochoa dice
Te fijaste si llego a Spam?
RubensS Ten dice
si así es me fije y no me mando nada, actualmente ya pude corregirlo y ya funciona pero con otras cabeceras gracias por responder.
alex dice
Ruben como estas? espero q bien! puedes compartir el cambio que le hiciste por que a mi no me envia.., a pesar que me el msj de msj enviado..
Antony Castro dice
Hola Josue me gusto mucho tu tutorial, lo único que falto es hacer que los campos se borren tras enviar el formulario, me podrías ayudar con eso, por favor. que puedo agregar para que se borren.
josueochoa dice
https://stackoverflow.com/questions/3786694/how-to-reset-clear-form-through-javascript
penHolder dice
el archivo php debe estar en el mismo directorio que el js?
josueochoa dice
No necesariamente, puedes cambiarlo de lugar, sin embargo si lo haces tienes que especificarlo en la JS.
alex dice
Hola., este formulario es exactamente lo que necesito pero cuando lo someto me sale el msj «Hubo un error»; quisiera saber si hay alguna forma de depurarlo., puedes ver el error en vivarealstate.com cuando le das a un boton ver mas., podras ver el form añadido pero cuando lleno los datos me da error., por favor dame una manito., no se por donde buscar la falla.
alex dice
Sr! esta resuelto., el error., solo que aparecio otro problema aun que me diceque el msj se envio no me llega nada, lo he probado con gmail, yahoo, y el mail de mi dominio no recibo nada.,y no estan en span tampoco que puede ser?
Golden Kenya dice
hola, parece que
Archivo: funciones.jsha desaparecido, no hay c’odigo…
josueochoa dice
Bajate el .zip de nuevo
https://webtursos.s3.amazonaws.com/web/source/cf_ajax.zip
Golden Kenya dice
No llegan los mensajes, ni al spam. Probado con dos cuentas diferentes de gmail. Ahi abajo hay un comentario de un compañero que dice haber modificdo las cabeceras y así logrado hacerlo funcional, a ver, qué hay que hacer?
Gilberto dice
hola, buenisimo el aporte, ya lo aplique a mi web solo que no se como poner el codigo que mencionas para resetear los datos al momento de enviarlos, no soy muy experto si pudieras ayudarme, gracias, saludos…
Gilberto dice
este error me aparece en la consola al momento de hacer click en el boton enviar correo, y no me resetea el formulario:
Uncaught TypeError: Object [object Object] has no method ‘reset’ funciones.js:73
$.ajax.successfunciones.js:73
kjquery.min.js:2
l.fireWithjquery.min.js:2
yjquery.min.js:2
d
nicolas dice
Pregunta de principiante, para agregar todo esto a mi pagina que es puro html y css, puedo hacer una carpeta llamado contacto y volcar todo ahi ? y agregar el codigo php dentro de html?
Gracias.
josueochoa dice
Al revés, agrega el HTML dentro de un archivo .php.
Ester dice
Muchas gracias por el formulario!! Funciona muy bien, pero estoy intentando añadirle unas preguntas antibot para que no me llegue spam y no sé cómo hacerlo. He visto varios post sobre el tema, pero no sé cómo aplicarlos al código que has compartido, pues en todos el formulario es un php. ¿Podrías darnos unas indicaciones? Muchas gracias 😉
josueochoa dice
Puedes poner un captcha, checa este tutorial: https://tursos.com/como-hacer-un-sistema-captcha-con-php/
Ester dice
Ya lo había consultado 😉 Quería hacerlo con preguntas antibot, pero esta otra propuesta tuya también está muy bien. En cualquier caso, gracias por el contenido de tu blog. También he implementado un accordion gracias a tu post https://tursos.com/como-hacer-un-acordeon-accordion-con-jquery-y-css y me funciona de maravilla. Probé varios tutoriales y, en los dos casos, me he decidido por tus propuestas porque funcionan muy bien y son fáciles de seguir (yo no tengo muchos conocimientos de programación) 😀
josueochoa dice
Me alegra saber que te ha servido Ester, gracias por tu comentario :).
Vanessa dice
Muchas gracias por tu tutorial, yo tengo un formulario hecho con ajax y divs, necesito validar los datos, pero no lo logro.. te podría pasar el código así me das una manito? si es así donde te lo puedo enviar? Me sería de muchísima ayuda!! Gracias!!
josueochoa dice
Que validación es la que no te funciona? JS o PHP?
Guest dice
Js.. intente poner el código de validación en el siguiente, pero en ningun lado me funciona,.. me lleva directamente al archivo envio.php, que es el que me envía el formulario de contacto a mi correo. mi código es el siguiente:
$(document).ready(function() {
$(«#enviar»).click(function(){
$(«#formcontacto»).fadeTo(«1000»,0,function() {
$(«#msj»).html(«Enviando..»);
$(«#msj»).show(1000);
$.post(«envio.php», { nombre: $(«#apyn»).val(), email: $(«#email»).val(), telefono: $(«#telefono»).val(), asunto:$(«#asunto»).val(), mensaje: $(«#mensaje»).val()},function(respuesta) {
$(«#msj»).fadeOut(500,function(){
if(respuesta.estado==»1″){
$(«#msj»).html(«Mensaje enviado.»);
$(«#msj»).fadeIn(1000);
setTimeout(«location.href=’?seccion=contacto'»,2000);
}
else {
$(«#msj»).html(«Error al enviar el mensaje.»);
$(«#msj»).fadeIn(500);
setTimeout(«location.href=’?seccion=contacto'»,2000);
}
});
}, «json»);
});
});
});
Apellido y Nombre *
E-mail *
Telefono:
Asunto:
Mensaje *
josueochoa dice
Pasame el link donde lo estas probando.
Vanessa dice
http://deoese.com/?seccion=contacto ahí lo estoy probando, lo que quiero hacer es que no me deje mandar el correo sin información
josueochoa dice
Tu código funciona, pero no esta validando porque no estas usando el codigo del tutorial
Vanessa dice
ok, y ese código en que parte lo coloco para que me funcione?? Gracias!!
josueochoa dice
En el tutorial lo explico con detalles (no se estaba mostrando el código pero ya lo arregle), es bastante similar a lo que ya tienes.
Vanessa dice
Ok,me fijo, muchas gracias!!
Edu dice
Buenas! Soy diseñador gráfico y me voy pasando de tanto en tanto por tu página para ir aprendiendo me encantan tus tutoriales espero que continúes haciendo, el formulario que tienes me funciona perfectamente incluso le he agregado alguna cosa para probar el tema es que he intentado unir este formulario con el tutorial que tienes de captcha y hay alguna cosa que hago mal creo es el PHP ya que este no es mi fuerte , si pudieras decirme algún tutorial para aprender a incorporar captcha con php y ajax te lo agredeceria he buscado por google no hay ninguno que entienda por si me dices que busques en google xD,
Que vaya bien!
Gabrielpb dice
Buenas tardes Amigo Josue
Tengo una web en html5 agregue este form por medio de el formulario se muestra pero todo lo que este abajo de el pierde su diseño tendra algun problema la pagina que no me deje utilizarla bien es esta http://www.magecian.com
Lucaas dice
yo baje el formulario y lo subi tal cual esta, poniendole en el proceso.php mi correo de gmail, sin embargo no me llega nada … =S que puede pasar
Felipe Grillo dice
El mensaje se envia teniendo el programa en local o necesariamente tiene que estar subido en internet. gracias
Josue Ochoa dice
Tienes que subirlo a internet.
Jorge Fonseca A. dice
hola Josue, pq me llegan los campos vacíos del formulario a mi correo e incluso en el servidor aparecen sin contenido?
Saludos
Carolina Ponce dice
Hola que tal! Espero que sigas contestando dudas, la mia es la siguiente: Al enviar figura el mensaje de error: Hubo error, pero aun asi se envia a mi mail, por que sera? Muchas gracias
Josue Ochoa dice
Puedes poner la URL donde lo estas probando?
Susana dice
Hola! bastante bueno el código acá, sólo me queda una duda, he probado el códgo y no me salta el mensaje de error, pensé que algo había puesto mal asi que baje este mismo y aún no puedo ver que mande error, ojala alguien pueda ayudarme y un cosa mas, veo que cuando no llenas un campo te marca el cursos para que se complete pero hay una forma en que sea mas gráfico esto? quiero decir que salga un mensaje que ingreses x valor una cosa asi, bueno si me ayudaran estaria genial y lo agradecería infinitamente,
Saludos y Felicidades a Josue por el blog!!! 😉 !!
David ZG dice
Tengo un problema, use este formulario para un inscripción para mi web, resulta que al momento de enviar me dice Mensaje enviado, pero no llega nada a mi correo.(http://192.185.110.179/~alonsope/formulario/) ¿Cual podría ser la falla?
PD: Excelente web, a favoritos ;3
RD dice
Gracias por compartir tus conocimientos Josue, he estado probando tu formulario de contacto pero ya no funciona, tengo entendido que lo único que se necesita cambiar es el correo electrónico al que deseo que lleguen los mensajes, incluso probé este https://tursos.com/como-hacer-un-formulario-de-contacto-i-html-y-css/ pero tampoco funciona, me podrías ayudar. Saludos
www.fairqq.club dice
So numerous review websites that all the good things and poor issues to say are displayed on numerous gaming sites will come.
Some are truly great they make 5 errors a day. But remember the boundaries of the different kinds of poker
players are not clearly defined and the very best pokers players can alter their style
of play extremely quickly to mislead the
rest of the desk.
Официально сообщаем Вам об одорении решения выплатить Вам денежную сумму. Настоятельно рекомендуем в срочном порядке уточнить детали перейдя по ссылке на официальную страницу в течение 30 минут пока Ваш доступ в систему не аннулирован!Переход на страницу: www.tinyurl.com/Hemglulp dice
Осведомляем Вас о том что принято решение выплатить Вам денежные средства. Настоятельно рекомендуем немедленно уточнить детали перейдя по ссылке на главную страницу сайта в срок до 2 дней. В случае просрочки Ваш доступ в систему будет аннулирован!Переход на страницу: http://www.tinyurl.com/Hemglulp
Передаем Вам сведения об одобрении выдать Вам некую сумму. Рекомендуется без промедления разбираться с подробностями пройдя на основную страницу сайта в течение 30 минут.Не упустите момент . В случае просрочки Ваш доступ в систему будет заблокирован!Переход на страницу: http://new.so/Horb dice
Официально сообщаем Вам о том что принят вердикт обеспечить Вам некую сумму. Обезопасьте себя! немедля оформить детали зайдя на официальную страницу нашего сервиса в течение 5 часов.Не упустите момент пока Ваш доступ в систему не аннулирован!Зайти в систему: http://new.so/Horb
Daniel Talavera dice
Hola… modifique un poco el formulario para que en vez de enviar un correo me grabe los datos en una base de datos, pero mi ajax creo no llega hasta la pagina php donde se procesa la grabacion. Le puse unos echo() al archivo php pero no llega a esa parte. Me podrias ayudar por fa
Mi JS
(function(){
$(«.boton_envio»).click(function() {
var fch_ini = $(«.fch_ini»).val();
fch_fin = $(«.fch_fin»).val();
comentario = $(«.comentario»).val();
tipo_permiso = $(«.tipo_permiso»).val();
documento = $(«.documento»).val();
if (tipo_permiso== «») {
$(«.tipo_permiso»).focus();
return false;
}else if(fch_ini == «»){
$(«.fch_ini»).focus();
return false;
}else if(fch_fin== «»){
$(«.fch_fin»).focus();
return false;
}else if (comentario == «»){
$(«.comentario»).focus();
return false;
}else{
$(‘.ajaxgif’).removeClass(‘hide’);
var datos = ‘documento=’+ documento + ‘&tipo_permiso=’ + tipo_permiso + ‘&fch_ini=’ + fch_ini + ‘&fch_fin=’ + fch_fin + ‘&comentario=’ + comentario;
$.ajax({
type: «post»,
url: «../php/proceso_permisos.php»,
data: datos,
success: function() {
$(‘.ajaxgif’).hide();
$(‘.msg’).text(‘Permiso grabado con exito!’).addClass(‘msg_ok’).animate({ ‘right’ : ‘130px’ }, 300);
},
error: function() {
$(‘.ajaxgif’).hide();
$(‘.msg’).text(‘Hubo un error!’).addClass(‘msg_error’).animate({ ‘right’ : ‘130px’ }, 300);
}
});
return false;
}
});
})();
***********************
***********************
Mi PHP proceso_permisos.php