Ya que deseas usar jQuery, puedes hacerlo con su método Ajax:
Código Javascript
:
Ver original$("#tuFormulario").submit(function(e){
e.preventDefault();
$.ajax({
url: "verificar.php",
type: "POST",
data: {dato: $("#campoOculto").val()},
success: function(response){
if (response != 1)
$(this).submit();
else
alert("Los datos ingresados ya se encuentran registrados");
}
});
});
Y en
verificar.php:
Código PHP:
Ver original$query = mysqli_query($conexion, "SELECT * FROM tuTabla WHERE dato = $_POST['dato']"); echo "1";
else
echo "2";
Cuando el usuario haya llenado sus datos en el formulario y pulse el botón para registrarse, evitas el envío de dichos datos con el método
preventDefault, luego, con
Ajax, enviamos hacia el archivo
verificar.php el dato que queremos verificar si existe en la BD. En dicho archivo, luego de realizar la respectiva consulta, verificamos si se encontraron coincidencias, de existir, imprimimos el "1", caso contrario, el "2". Esta será la respuesta del servidor mediante la cual efectuaremos o el envío de los datos o la muestra del mensaje de error.
Regresando al código JS, en el método
success, cuando se obtenga la respuesta del servidor, realizamos una de dos acciones dependiendo de ésta. Si la respuesta es diferente a 1, quiere decir que el usuario no se encuentra en la BD y por ende se procede a enviar los datos del formulario para su registro, caso contrario, es decir, si existe, se muestra un mensaje de alerta en donde se le indica al usuario que los datos que ingresó se encuentran registrados en la base de datos, con lo cual, evitamos que el usuario pierda los datos que ya escribió.
Eventualmente puedes usar un mensaje en un <span> en lugar de la alerta y utilizar cualquier otro valor en lugar del 1 y el 2.
Saludos