簡體   English   中英

提交后ajax表單重定向

[英]ajax form redirect after submit

您好,我在提交表單后遇到重定向問題。 我正在使用簡單的 ajax 表單在 div 中顯示登錄錯誤。

$(document).ready(function(){
$('#formlogin').on('submit', function (e) {

    $.ajax({
        type: 'POST', 
        url: 'login.php',
        data: $(this).serialize(),
        success: function(data) {
        $('div#ack').empty().append(data);

        } 

    });

    e.preventDefault();
});

問題是提交成功后它不會重定向到“logged_in.php”

這里是php登錄。

if (empty($username) === true || empty ($password) === true)    {
    $errors [] = 'Please enter both username and password!';

} else if (user_exists($username) === false)   {
    $errors [] = 'We can not find the name. Have you registered?';
} else {

    $login = login($username, $password);
    if ($login === false)  {
        $errors [] = 'This user name or password is incorrect.';

    } else {

        $_SESSION['user_id'] = $login;
        header('Location: logged_in.php');  
        exit();

    }


}

如果重定向使用 AJAX 調用的頁面,則不會重定向父頁面。

您應該做的是回顯一些標識用戶已成功登錄的內容。

也許而不是header('Location: logged_in.php'); 你把:

echo "success";

然后,在您的成功函數中:

success: function(data) {
    if (data == "success")
        window.location = "logged_in.php";
    else
        alert("Wrong password.");
}

注意ajax中的success並不代表你已經登錄成功,只是說明對頁面的請求返回沒有錯誤(500)。 您仍然需要決定要對數據做什么。

這里有兩件不同的事情。

1 - 你的 AJAX 函數。 它在異步調用服務器的頁面上

2 - 您的登錄頁面。 它由包含 AJAX 的頁面調用

您的第二頁中的代碼發生在服務器中,而您的AJAX代碼發生在您的客戶端中。

您應該在您的 php 登錄頁面中返回一條成功消息,然后在您的成功回調中,檢查該消息是否正確,這表示用戶已成功登錄。 一旦您檢查消息是正確的,您可以從成功回調重定向用戶,執行: location.href = "yourUrl"

這是一些對我很有用的生產代碼,用於提交表單然后重定向。

$.ajax({
        url: "QuoteReload.php",
        type: 'GET',
        data: 'batchid=' + bid + '&operation=archiveBatch',
    success: function(response) { 
                // window.location.href = "EditItem.php?batchid=" + bid + "&quoteitemid=NEW";
                $(location).attr('href', 'Quote.php?QuoteId=<?php echo $QuoteId; ?>')
            },
    error: function(xhr) {
            $(ddl).css("background-color", "#4C25BC");
            alert('Delete Batch error: ' + xhr); 
             }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM