Alright... at 2am, this is where I draw the line. Help... before my laptop ends up going out the window. :)
I\'ve tried using setTimer, callbacks, and everything else I
AJAX stands for asynchronous. That means that in your original code, saveRecord
will be executed before the client will receive the response from the server (and, depending on the $.ajax
implementation, it might be before the client will send the request to the server).
Additionally, you seem to misunderstand how functions work in JS. var category = autoSelectCategory(payee);
will set the category to the return value of autoSelectCategory
; but the autoSelectCategory
function in your code returns nothing.
From the other side, the data
return value of your anonymous function could only be used by $.ajax
function (and $.ajax
likely ignores the success
parameter return value).
Here is the code that should work:
function parseRow(row){
var rowArray = row.trim().split(",");
var date = rowArray[0];
var checknum = rowArray[1];
var payee = rowArray[2];
var memo = rowArray[3];
var amount = rowArray[4];
autoSelectCategory(payee, function (category) {
saveRecord(date, checkNum, payee, memo, category, payment, deposit);
});
}
function autoSelectCategory(payee, callback) {
$.ajax({
async: false,
url: "autoselectcategory",
dataType: "json",
data: {
string: payee
},
success: callback
});
}