Zwrócenie wartości z funkcji

0

Zależy mi że przy wywołaniu funkcji alert ( alert(getUser(data[0], updateInputs));), zwracana wartość pochodziła by z funkcji updateInputs, a nie z funckji getUser.
Ma ktos może pomysł, jak to zrobic??

plik 1:

function getUser(id, nameFunction) {
    var date;
    
    $.ajax({
        url: 'pobierzHandlowca.php',
        type: 'POST',
        async: false,
        dataType: 'json',
        data: 'idHash='+id,
        success: date
    });
    
    updateInputs(date);
    //if( (nameFunction.isValid === false) || (nameFunction.size === 0) ) return false;
    //else return true;
        
}


var updateInputs = function( resp ) {
    try {
        if( (resp.isValid === false) || (resp.size === 0) ) throw "Blad z pobraniem listy handlowcow";
        $('input[name="imie]').val(resp.lister[0].imie);
        return true;
    } catch(err) {
        alert(err);
        return false;
    }
};

plik2:

$('#example tbody').on( 'click', '.edituser', function (e) {
            e.preventDefault();
            $('.currentRow').removeClass('currentRow');
            ($(this).parents('tr')).addClass("currentRow");
            var data = oTable.row($('.currentRow')).data();

                alert(getUser(data[0], updateInputs));
                $('.uniwersalWhiteContent').css('width', '500px');
                $('.handlowiec').html(data[1] + ' ' + data[2]);
                document.getElementById('lightEditUser').style.display='block';document.getElementById('fadeEditUser').style.display='block';
//            } else {
//                $().toastmessage('showErrorToast', "Operacja zakończyła się nie powodzeniem");
//            }

//            var json = insertIntoInputs(getUser(data[0], e));
//            if(insertIntoInputs(getUser(data[0], e))) {
//                $('.uniwersalWhiteContent').css('width', '500px');
//                $('.handlowiec').html(data[1] + ' ' + data[2]);
//                document.getElementById('lightEditUser').style.display='block';document.getElementById('fadeEditUser').style.display='block';
//            } else {
//                
//            }
            
        });
0

Aaaa może byś tak przeczytał dokumentację?
success: date co to ma robić?

Ajax jest asynchroniczny, zatem potrzebujesz wykorzystać callbacki.

0

dlatego dodałem wartość *async: false, *

0

Przeprasza, kod klasy powinien wyglądać tak

function getUser(id, nameFunction) {
    var date;
 
    $.ajax({
        url: 'pobierzHandlowca.php',
        type: 'POST',
        async: false,
        dataType: 'json',
        data: 'idHash='+id,
        success: nameFunction
    });
 
}
0

Z jakiego powodu używając jQuery dodajesz wstawki ze zwykłego js ?

document.getElementById('lightEditUser').style.display='block';document.getElementById('fadeEditUser').style.display='block';

Istnieje taka metoda jak .css(), która pozwala na stylowanie elementów- jednak nie polecam. Lepiej zrobić sobie normalną klasę w css, a później użyć po prostu metody .addClass().
http://api.jquery.com/css/
https://api.jquery.com/addclass/

Co do problemu: http://stackoverflow.com/questions/6685249/jquery-performing-synchronous-ajax-requests

1 użytkowników online, w tym zalogowanych: 0, gości: 1