Возврат значения из функции jQuery ajax - PullRequest
1 голос
/ 12 августа 2010

Я знаю, что есть много вопросов по этому поводу, но ни один из них, похоже, не отвечает на мой конкретный вопрос.

У меня проблемы с созданием функции, которая включает вызов ajax, а затем возвращает значение. Я сейчас использую:

    hmis_query_temp_scalar: function(query_name) {
        return $.ajax({
            url: '/php_scripts/query_temp_scalar.php',
            data: {query_name: query_name},
            async: false
        }).responseText
    }

но я хотел бы сделать это асинхронным, но если я изменю его на async: true Это не работает, я просто получаю неопределенные значения. Есть ли способ сделать это?

В настоящее время я использую эту функцию следующим образом:

На странице загружаются следующие скрипты:

$(document).ready(function() {
    $.setQueryLink('active_clients', '1');
    $.setQueryLink('active_clients_u18', '1');
    $.setQueryLink('active_clients_19_59', '1');
    $.setQueryLink('active_clients_o60', '1');
...

Что вызывает следующее:

setQueryLink: function(query_name, type) {
        var object = "#" + query_name;
        var value = $.hmis_query_temp_scalar(query_name);

        $(object).html(value);
        $(object).attr('href', "/standard_queries.php?query=" + query_name + "&type=" + type);
    }

Есть ли лучший способ сделать это? (Я знаю, что кажется, что это должно быть сделано в PHP, но это не то, что я хочу в данный момент, я хочу асинхронную загрузку в JavaScript)

1 Ответ

1 голос
/ 12 августа 2010

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

т.е.

$.ajax({
    type: 'POST',
    url: 'formService.asmx/RemoveFieldOption',
    contentType: 'application/json; charset=utf-8',
    data: "{'fieldId':'1', 'optionId':'1'}",
    dataType: 'json',
    success: action_removeFieldOptionPass,
    error: ajaxTestFail
});

function action_removeFieldOptionPass(result) {
    $('#whatever').html(result);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...