JQuery: показать диалог на другой странице после отправки данных - PullRequest
0 голосов
/ 05 февраля 2011

Например, у меня есть компьютер в качестве сервера. И у меня есть 3 клиентских ПК.

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

Могу ли я сделать это, используя JQuery? или у тебя есть другой совет? это возможно?

Ответы [ 2 ]

1 голос
/ 05 февраля 2011

Да, вы можете.Вы можете использовать этот скрипт:

$(document).ready(function() {

    $('#myDialog').dialog({
        autoOpen: false
    });

    $.ajax({
        type: 'GET',
        url: 'webpage_to_check',
        data: { },
        dataType: 'json',
        beforeSend: function(XMLHttpRequest) {
        // You can do something before posting data.
        },
        complete: function(XMLHttpRequest, textStatus) {
        var Response = $.parseJSON(XMLHttpRequest.responseText);
        if ((XMLHttpRequest.responseText == 'false') || (Response.Status == false)) {
            // FAIL
        }
        else {
            // SUCCESS
            $('#myDialog').dialog("open");
        }
        }
    }); 
});

, который определяет диалог, который вызывает вашу страницу (GET или POST) и читает возвращаемую информацию.Я определил ответ JSON, но вы используете XML или чистый текст.
Второй вариант - делать то же самое на каждой странице, но с чем-то вроде системы опроса, поэтому ваш javascript проверяет каждые X секунд:

$(document).ready(function() {

    $('#myDialog').dialog({
        autoOpen: false
    });


    function ScheduledAction(func, times, interval) {
        var ID = setInterval(function() {
            if (times > -1) {
                if (--times <= 0) {
                    clearInterval(ID);
                }
            }
            func();
        }, interval);
    }

    function CheckStatus()
    {
    $.ajax({
        type: 'GET',
        url: 'webpage_to_check',
        data: { },
        dataType: 'json',
        beforeSend: function(XMLHttpRequest) {
        // You can do something before posting data.
        },
        complete: function(XMLHttpRequest, textStatus) {
        var Response = $.parseJSON(XMLHttpRequest.responseText);
        if ((XMLHttpRequest.responseText == 'false') || (Response.Status == false)) {
            // FAIL
        }
        else {
            // SUCCESS
            $('#myDialog').dialog("open");
        }
        }
    }); 
    }

    ScheduledAction(CheckStatus, -1, 30);

});
0 голосов
/ 05 февраля 2011

Поскольку серверный push еще не готов для Интернета, страницы, на которых должно появиться диалоговое окно, должны будут опрашивать сервер, чтобы узнать, поступили ли данные (так же, как опросы StackOverflow при записи ответ, чтобы узнать, были ли опубликованы другие ответы).

Вы делаете это с помощью ajax (это ссылка) , а затем показывает диалоговое окно с вашим собственным кодом или (рекомендуется), используя ваше любимое диалоговое окно плагин для jQuery (например, jQuery UI ).

...