簡體   English   中英

驗證完成后如何重定向頁面?

[英]How to redirect a page after validation is done?

我有一個登錄表單,並且正在使用jQuery / Ajax驗證此表單並獲取json響應。

這種形式正在調用一個名為add-data.php的php頁面。

因此,當所有驗證完成后,我想重定向到另一個頁面。 Successfully logged! 文字:

if($msg['error'] === false) {           
    $msg[] = '<b>Successfully logged!.</b>';             
} 

我用了

setTimeout(function() {
    window.location = <?php echo "\"{$site_url}\""; ?>                         
}, 1000);

但這不是重定向!

完整的重定向代碼(無效):

if($msg['error'] === false) {           
     $msg[] = '<b>Successfully logged!.</b>';            
     ?>
     <script type="text/javascript">
     setTimeout(function() {
              window.location = <?php echo "\"{$site_url}\""; ?>                         
          }, 1000); 
    </script>
    <?php
}

更新:

$("#add_data").submit(function(e) {        
    e.preventDefault();
    var button_name = $("#button_name").val();
    var formData = new FormData(this);
    $.ajax({
        url : url+'add-data',
        data : formData,
        dataType : 'json',
        type : 'POST',
        cache:false,
        contentType: false,
        processData: false,
        beforeSend : function () {
            $("#submit_button").val("Loading...");
            $("#submit_button").prop('disabled', true);
            $('#form_result').show();
        },
        success : function ( result ) {
            $("#submit_button").val(button_name);
            $('#form_result').html('');                    
            $("#submit_button").prop('disabled', false);
            $.each( result, function( key, value ) { 
                if( key !== 'error' && result.error == true  ) {
                    $('#form_result').append('<div class="alert alert-danger">'+value+'</alert>');
                } else if ( key !== 'error' && result.error == false ) {
                    $('#form_result').append('<div class="alert alert-success">'+value+'</p>');
                    $('#form_result').delay(3000).hide('slow');   
                    $("#submit_button").val(button_name);                       
                    $("#submit_button").prop('disabled', true);
                }                         
            });                  
        },
        error: function(xhr, textStatus, errorThrown) {
            $('#form_result').append('<p class="alert alert-danger">Somethig is wrong!</p>');
            return false;
        },
    });
});

考慮到您success:的邏輯success:部分有效,您應該這樣處理:

} else if ( key !== 'error' && result.error == false ) {
                $('#form_result').append('<div class="alert alert-success">'+value+'</p>');
                $('#form_result').delay(3000).hide('slow');   
                $("#submit_button").val(button_name);                       
                $("#submit_button").prop('disabled', true);
                window.location.replace("http://theredirectpage.com");
            }    

如果您需要重定向到php文件生成的網址,則應將其返回到結果數組中,然后將值插入到重定向調用中,如下所示:

 window.location.replace(result.redirectUrl);

希望能有所幫助

暫無
暫無

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

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