#javascript #php #ajax
#javascript #php #ajax
Вопрос:
Я проверяю данные из формы с помощью php и ajax, и я нахожу проблему, и она заключается в том, что файл php отправляет количество результатов в файл javascript, в котором он выполняет проверку, но у меня проблема в том, что файл php отправляет количество данных из echo
,очень редко, и это то, что я создаю переменную SESSION
и в зависимости от типа пользователя перенаправляю на некоторую страницу с помощью функции header ('location: ../ client.php')
, и что происходит дальше, так это то, что файл php отправляет весь код страницы с количеством найденных данных в файл js, и это приводит к сбою проверки,итак, как я мог решить эту ошибку, поскольку функции перенаправления не работают.
codeajax
function iniciar_sesion() {
$.ajax({
type: "POST",
url: "Php/iniciar_sesion.php",
data: $('#formularioini').serialize(),
success:function(r) {
console.log(r);
if (r>0) {
$('#formularioini')[0].reset();
} else {
swal("¡Error al ingresar!", "identificacion y/o contraseña, incorrectos", "error");
}
}
});
return false;
}
код php
$queryIniciar=Conexion::conectar()
->prepare("SELECT *
FROM `usuarios`
WHERE `IDENTIFICACION`=:nit
AND `CLAVE`=:clave");
$queryIniciar->bindParam(':nit',$datos['nit'], PDO::PARAM_STR);
$queryIniciar->bindParam(':clave',$datos['clave'], PDO::PARAM_STR);
$queryIniciar->execute();
$resultados=$queryIniciar->fetchAll(PDO::FETCH_ASSOC);
$_SESSION['identificacion']=$resultados;
if($_SESSION['identificacion']['ID_USUARIO_FK']==1){
header("location: ../administrador.php");
exit;
}else if($_SESSION['identificacion']['ID_TIPO_USUARIO_FK']==2){
header("location: ../cliente.php");
exit;
}
echo $queryIniciar->rowCount();
Ответ №1:
Во-первых, ваш echo $queryIniciar->rowCount();
недоступен!
Во-вторых, поскольку вы перенаправляете на другую страницу, каким бы способом вы ни выполняли свою инструкцию IF, а затем exit
редактируете, нет реального смысла отправлять что-либо обратно вызывающему javascript, поскольку управление будет переключено на одну из перенаправленных форм, прежде чем вы сможете что-либо с ней сделать.
$queryIniciar=Conexion::conectar()
->prepare("SELECT *
FROM `usuarios`
WHERE `IDENTIFICACION`=:nit
AND `CLAVE`=:clave");
$queryIniciar->bindParam(':nit',$datos['nit'], PDO::PARAM_STR);
$queryIniciar->bindParam(':clave',$datos['clave'], PDO::PARAM_STR);
$queryIniciar->execute();
$resultados=$queryIniciar->fetchAll(PDO::FETCH_ASSOC);
$_SESSION['identificacion']=$resultados;
if($_SESSION['identificacion']['ID_USUARIO_FK']==1){
header("location: ../administrador.php");
exit;
}else if($_SESSION['identificacion']['ID_TIPO_USUARIO_FK']==2){
header("location: ../cliente.php");
exit;
}
Комментарии:
1. Давайте посмотрим, правильно ли я понимаю, вы говорите мне, что, хотя javascript фиксирует количество записей, он ничего не может сделать, поскольку страница уже была заменена?