1

jquery ajax post requestの値をajax関数から外部に取得したい。私のコードはこれで、undefinedコンソール出力として返されます。どのように修正する必要がありますか

function submit() {
    var outputFromAjax = submitViaPost('administrator/validationForInputValuesOfAddRole');

    console.log(outputFromAjax);
}

function submitViaPost(url) {

    var formData = $('form').serializeArray();

    var output;

    $.post(urlForPhp + '/' + url, formData, function (outputData) {
        output = outputData;
    });
    return output;
}

編集済み

コードを変更して、タイプ ajax ポスト リクエストを同期し、出力を確認しました。しかし、それは変更されていません。ここに私のコード

function submit() {
    var outputFromAjax = submitViaPost('administrator/validationForInputValuesOfAddRole');

    console.log(outputFromAjax);
}

function submitViaPost(url) {

    var formData = $('form').serializeArray();

    var output;

    $.ajax({
        url: urlForPhp + '/' + url,
        data: formData,
        dataType: 'JSON',
        async: false,
        method: 'POST',
        success: function (e) {
            output =  e;
        }
    });
    return output;
}
4

2 に答える 2

0

遅延jQueryを使用できます

function submit() {
    submitViaPost('administrator/validationForInputValuesOfAddRole').then(function (outputFromAjax) {
        console.log(outputFromAjax);
    });
}

function submitViaPost(url) {
    var dfd = jQuery.Deferred();
    var formData = $('form').serializeArray();
    $.post(urlForPhp + '/' + url, formData, function (outputData) {
        dfd.resolve(outputData);;
    });
    return dfd;
}
于 2015-05-15T07:33:28.950 に答える