Не перенаправление на другую страницу после успешного выполнения запроса ajax - PullRequest
0 голосов
/ 27 ноября 2018

Я проверяю форму входа через ajax.После успешной проверки форма не перенаправляет на нужную страницу.

Ajax-коды

function login_submit(){
    var stat="";
    $("#submit").val("Loging in...");
        $.ajax({
              type: "POST",
              url: "php/login.php",
              data: {
                      uname: $("#uname").val(),
                      pass : $("#pass").val()
                    },
              success: function(result) {
                          if(result=="parent"){
                              window.location = "http://localhost:90/auction/augeo/admin/parent_admin/index";
                          }
                          else if(result == "sucess_normal"){
                              window.location.assign("../normal_admin");
                            }
                          else if(result == "deactivated account") {
                              window.location.assign("reactivate_account/");
                            }
                          else if(result == "banned account") {
                              window.location.assign("banned_account/");
                          }
                          else{

                            $("#submit").val("Login");
                            $("#error_msg").css({color: 'red'});
                             document.getElementById("error_msg").innerHTML= result;
                             stat = false;


                      }
                    }
               });
    if(!stat)
      return false;
  }

Код php

if(isset($_POST['uname']) && isset($_POST['pass'])){
    $username = encode($_POST['uname']);
    $password = encrypt(encode($_POST['pass']));

    // check if entered username and password is in the database
    $result = mysqli_query($conn,"SELECT * From admin_account where admin_account.username = '$username' AND admin_account.password = '$password' ");
    if($row = mysqli_num_rows($result) == 1){
        $found = mysqli_fetch_array($result);

        if($found['state'] == 1){
            $account_id = $found['account_id'];
            setcookie("admin_id", $account_id, time() + (86400 * 30), "/");
            $_SESSION['admin_id'] = $account_id;


            $result1 = mysqli_query($conn,"SELECT role_id From admin where admin_id = '$account_id'");
            $found1 = mysqli_fetch_array($result1);
            $_SESSION['account_type'] = $found1['role_id'];
            if($found1['role_id'] == "1"){
                echo "parent";
           //header("Location: http://localhost:90/auction/augeo/admin/parent_admin/index");
            }else{
                echo "sucess_normal";
            }
        }
        elseif($found['state'] == 2){
            echo "banned account";
        }
        else{
            $_SESSION['deactivated_id'] = $found['account_id'];
            echo "deactivated account";
        }
    }
    else{
        echo "Incorrect Username or Password";
    }
}

Я перепробовал все, что мог, но безрезультатно.Я хочу проверить, если result == "parent" и если result == "parent" , он должен перенаправить на window.location = "http://localhost:90/auction/augeo/admin/parent_admin/index";, новместо этого он повторяет parent .

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Вы получаете кнопку с

$("#submit")

Это нормально, но если кнопка определена как:

<input type="submit" id="submit" value="..." />

Вы получите последующую отправку формы кнопкеопределяется в.

Чтобы избежать этого, гораздо более простое решение для другого, предлагаемого, состоит в том, чтобы вообще не использовать кнопку отправки.Вместо этого используйте простую кнопку действия.Это два примера, второй из которых, вероятно, лучше, потому что его легче проектировать с помощью начальной загрузки / HTML5 / CSS ...

<input type="button" id="submit" value="..." />

или лучше:

<button type="button" id="submit">...</button>

В случаеиз медленного сервера / сети, вы, вероятно, захотите помочь юзабилити AJAX, отключив кнопку:

$("#submit").val("Logging in...").prop("disable", "disable");

Это помогает избежать многократных отправок, когда сервер медленный и пользователь нетерпелив.

0 голосов
/ 27 ноября 2018

Вы говорите: "Это повторяет родителя". Но это никогда не должно происходить с кодом AJAX, который вы указали .

Так что я подозреваю, что у вас есть форма, которая запускает собственную отправку по умолчанию, и , что - эточто вы видите.

Вы можете проверить этот ответ :

$('#idOfYourForm').submit(function() {
     var $theForm = $(this);

     // This is a button or field, right? NOT the form.
     $("#submit").val("Logging in...");

     $.post(
          'php/login.php',
          {
                  uname: $("#uname").val(),
                  pass : $("#pass").val()
          }
     ).done(function(result) {
          // check the result
          alert("Server said: " + result);
     });

     // prevent submitting again
     return false;
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...