As my framework grows i decided to split it into files, instead of leaving it in the main design file. However by doing that the return of a function doesn't return any value.
data isn't empty - if i alert the values in the js file they are there!
The functions:
1st the function in .js file (is included before the execution)
var lock_get = 0;
function get_data(data, destination)
{
if (lock_get == 0)
{
lock_get = 1;
$.ajax({
type: "POST",
url: destination,
async: true,
data: data,
success: function(data)
{
lock_get = 0;
if (data)
{
return data;
}
}
});
}
};
So and here is the execution part:
var test = get_data(data, destination);
notice(test);
and test is empty... I already tried different ways for writing but I guess i missunderstood the possibilities of js?
ajax({ async: true, contentType: 'application/json; charset=utf-8', type: "POST", dataType: 'json', data: JSON. stringify(arrays), url: "MyHandler. ashx", success: function (result) { b = true; }, error: function () { alert('Error occurred'); } });
The Ajax function returns a jQuery XHR object ( jqXHR ). The jqXHR object is a superset of the native XMLHttpRequest JavaScript object. It's a superset because the jqXHR object has additional functionality over and above the native XMLHttpRequest object.
You can't do that : as the call is asynchronous, the get_data function can't return the result of the ajax call.
What you should do is provide a callback to the get_data function and handle the result in the callback.
function get_data(data, destination, callback)
{
if (lock_get == 0)
{
lock_get = 1;
$.ajax({
type: "POST",
url: destination,
async: true,
data: data,
success: function(data)
{
lock_get = 0;
if (data && callback)
{
callback(data);
}
}
});
}
};
And call it like that :
get_data(data, destination, function(test){
notice(test);
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With