¿Por qué pones en la cabecera del formulario la línea
onsubmit="return validar();"
si ninguna de tus funciones devuelve un valor?
Hacerlo sin Ajax significa que simplemente no uses el método
$.ajax
ni la manera nativa de hacerlo. Solo usarías el formulario, tu función de validación y devolverías
true
o
false
si la validación fue exitosa o no.
La verdad, no entiendo por qué te complicas con algo tan sencillo. Un ejemplo simple con Ajax de algo similar a lo que pretendes hacer sería el siguiente:
Código HTML:
Ver original<form id = "login" method = "post" action = "procesar.php"> <input type = "text" name = "usuario" id = "usuario" required />
<input type = "password" name = "clave" id = "clave" required />
<input type = "submit" />
Código Javascript
:
Ver original$("#login").on("submit", function(event){
event.preventDefault();
$.ajax({
url: $(this).prop("action"),
type: $(this).prop("method"),
data: $(this).serialize()
}).done(function(respuesta){
if (respuesta == "OK"){
$(location).prop("href", "principal.php");
}
else{
alert("Los datos ingresados no son correctos");
}
});
});
Código PHP:
Ver original
if (!$conexion) exit('No se pudo conectar');
$consulta = "SELECT * FROM usuarios WHERE usuario = '$usuario' AND clave = '$clave'";
$resultados = mysqli_query($conexion, $consulta) or
exit('No se pudo realizar la consulta');
$_SESSION['identificado'] = true;
$_SESSION['usuario'] = $usuario;
echo 'OK';
}
else{
$_SESSION['identificado'] = false;
echo 'ERROR';
}
Y en principal.php:
Código PHP:
Ver original
if ($_SESSION['identificado']){
//Muestras el contenido
}
Toma este sencillo ejemplo como una guía para que hagas lo que necesitas.
Saludos