Because you're returning your data to $.ajax, which isn't expecting
anything to be returned from the callback.
Just use the success callback to do what you want with the result.
David
Adwin Wijaya wrote:
nope, i want to return as json.
price was there because i was logging into console. just for
debugging :) and i will do the calculation after it return the value.
I tried using async:false
and the result still undefined
function getGoodsDetail(id){
$.ajax({
type: "POST",
url : "/goods/detail/",
data : "id="+id,
dataType: "json",
async:false,
success : function(data){
return data ;
}
});
}
var x = getGoodsDetail(10);
any idea ?
I think i need to have callback so that I can return the value ...
just like in $.post and $.get.
is it possible ?
thanks
On Mar 5, 9:06 am, James <james.gp....@gmail.com> wrote:
But does it work with async set to false?
The code should work correctly if you have async set to false.
However, you cannot do this (return the JSON from the function)
properly without that setting set to false.
By the way, is it suppose to be:
result = price;
? I don't see what you're doing with the price variable in there.
On Mar 4, 3:43 pm, Charles Liu <charles.li...@gmail.com> wrote:
hi Adwin,
it is "undefined" because it runs before ajax is finished.
maybe you should try to move "return result" next to the position of "result
= data"
let me know if it works
Charles
2009/3/5 Adwin Wijaya <adwin.wij...@gmail.com>
Hi,
can i have callback function on the $.ajax ?
I don't want to use async since it will block the browser ... so can i
use callback instead ?
I would like to have function that return json like this
function getGoodsDetail(id,member){
var result ;
$.ajax({
type: "POST",
url : "/goods/detail/",
data : "id="+id,
dataType: "json",
async:false,
success : function(data){
var price = 0 ;
if(member == 'Y'){
price = data.priceMember ;
}else{
price = data.priceNonMember;
}
// I want to return data to user
result = data
}
});
return result; // --> always undefined
}
so when I call getGoodsDetail(id, membership) it will return json
value ...