проверка полей с помощью php и ajax и использование разделов

#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 фиксирует количество записей, он ничего не может сделать, поскольку страница уже была заменена?