JQuery на успех, перезагрузите страницу, а затем добавить? - PullRequest
3 голосов
/ 12 января 2012

У меня есть следующий код:

$.ajax({
        type: 'GET',
        url: 'edit_slides.php',
        data: { user_id: user_id },
        success: function() { 
            location.reload(); 
            $('#messageContent').append('<p>success</p>'); 
        }
    });

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

Могу ли я что-нибудь еще сделать?Я хочу показать сообщение об успехе после перезагрузки страницы.

Спасибо!

Ответы [ 3 ]

5 голосов
/ 12 января 2012

location.reload() перезагрузит вашу страницу, которая создаст новый запрос к вашему серверу, а затем браузер загрузит ответ. Вы можете добавить параметр в строку запроса для сообщения, например,

$.ajax({
        type: 'GET',
        url: 'edit_slides.php',
        data: { user_id: user_id },
        success: function() { 
            window.location = "?message=success";
        }
    });

Затем в коде на стороне сервера вы можете отобразить сообщение, если параметр существует. В ASP.NET MVC это будет выглядеть так:

@if(Request["message"] == "success")
{
    <p>success</p>
}

Если у вас нет доступных сценариев на стороне сервера, вы также можете проанализировать строку запроса с помощью javascript .

1 голос
/ 12 января 2012

Отправить его в местоположение, но с хешем в URL, чтобы указать успех:

$.ajax({
    type: 'GET',
    url: 'edit_slides.php',
    data: { user_id: user_id },
    success: function() { 
        window.location = window.location + "#success";
    }
});

Теперь, когда страница загружается, проверьте хэш:

$(document).ready(function(){
    if(window.location.hash) {
        $("#messageContent").append("<p>success</p>");
    }
1 голос
/ 12 января 2012

Вы можете иметь некоторую задержку, прежде чем перезагрузить страницу.Попробуйте это

$.ajax({
        type: 'GET',
        url: 'edit_slides.php',
        data: { user_id: user_id },
        success: function() { 
            $('#messageContent').append('<p>success</p>'); 
            setTimeout(function(){
               location.reload(); 
            }, 500);
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...