Установите значение $ .post для функции - PullRequest
0 голосов
/ 10 августа 2011

Можно ли вернуть значение сообщения jquery в обычную функцию js, подобную этой?

function get_err(req) {
    var error = $.post("get_err.php", { error: req },
    function(data) { return data; }, "text");
}

Если я установил оповещение (данные); он работает, но мне не нужно, чтобы его предупреждали, мне нужно, чтобы он был возвращен, чтобы я мог использовать его как здесь:

success: function(data) {
   $("#error").html(get_err(data));
}

1 Ответ

1 голос
/ 10 августа 2011

Существует три подхода:

  1. Сделать синхронный запрос.Это не рекомендуется, поэтому я не буду описывать это более подробно

  2. Используйте функцию «обработчик», например:

    $.post("get_err.php", 
        { error: req },
        function(data) {handle_result(data) },
        "text"
    );
    
    function handle_result(data){
        //do whatever you need with result here
    }
    
  3. Используйте отложенные объекты .Это относительно новая функция jQuery, и я еще не освоил ее, поэтому не уверен насчет примера.

    var deferred = $.ajax({/*ajax params here*/});
    deferred.done([handler1, handler2], handler3); //all handlers are chained and invoke one after another
    //at some moment later or on event//
    deferred.resolve(); //this calls the handlers.
    
    function handler1(data){};
    function handler2(data){};
    function handler3(data){};
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...