Ver Mensaje Individual
  #4 (permalink)  
Antiguo 14/12/2016, 11:15
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Estilos para los Alerts

Un ejemplo corto:

Código HTML:
Ver original
  1. <form id="registro" method="POST" action="validar.php">
  2.     <label>E-mail:</label>
  3.     <input type="email" name="correo" />    
  4.     <input type="submit" value="Validar" />
  5. </form>
Código Javascript:
Ver original
  1. document.querySelector("#registro").addEventListener("submit", function(event){ //Cuando se procese el formulario
  2.     event.preventDefault(); //Cancelamos el envío
  3.  
  4.     var ajax = new XMLHttpRequest(), //Instancia del objeto XMLHttpRequest
  5.         method = this.method, //Método HTTP establecido en el atributo "method" del formulario
  6.         url = this.action, //Ruta del archivo establecida en el atributo "action" del formulario
  7.         async = true; //La petición será asíncrona
  8.    
  9.     ajax.open(method, url, async); //Se establecen los parámetros y se inicia la petición
  10.     ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); //Establecemos las cabeceras respectivas
  11.     ajax.addEventListener("load", function(){ //Una vez que se haya completado el proceso
  12.         if (this.status == 200){ //Si fue satisfactorio
  13.             var mensaje = this.responseText; //Obtenemos la respuesta
  14.             /* Aquí muestras el mensaje en tu ventana modal */
  15.         }
  16.     }, false);
  17.     ajax.send("email=" + document.querySelector("[name=correo]").value); //Enviamos el dato escrito por el usuario
  18. }, false);
Código PHP:
Ver original
  1. $connection = new mysqli('localhost', 'user', 'password', 'database');
  2. if ($connection->connect_errno) exit($connection->connect_errno . ': ' . $connection->connect_error);
  3.  
  4. $email = $connection->real_escape_string(strip_tags(trim($_POST['email'])));
  5. $query = "SELECT users_email FROM tbl_users WHERE users_email LIKE '%$email%'";
  6. $results = $connection->query($query) or exit($connection->error);
  7.  
  8. if ($results->num_rows){
  9.     echo 'Este e-mail ya existe';
  10. }
  11. else{
  12.     echo 'Este e-mail está disponible';
  13. }
  14.  
  15. $results->free();
  16. $connection->close();

En el ejemplo, cuando el usuario procesa el formulario, se cancela el envío de los datos (que implica la recarga de la ventana) y se ejecuta una petición asíncrona hacia la dirección establecida en el atributo action del formulario, enviando el valor escrito en la caja de texto contenida en el formulario. Una vez que en el archivo PHP se realiza la conexión a la base de datos y se busca el correo electrónico, se imprime una respuesta, ya sea que se haya encontrado coincidencias (el correo electrónico ya fue registrado) o no (está disponible). Finalmente, dicha impresión retorna al primer archivo como respuesta a la petición, de tal modo que, cuando se complete el proceso de forma satisfactoria, puedes mostrar el mensaje en la ventana modal.

__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 14/12/2016 a las 11:31 Razón: Comentarios