2013-08-28 5 views
0

저는 JQuery를 처음 접했지만 실제로 그것에 대해 자세히 알기 위해 노력하고 있습니다. 내가 반환 값을 기대하고 있지만 정의되지 않은 함수를 작성했습니다. 누군가 내가 잘못 가고있는 것을 보여 주실 수 있습니까?JQuery가 int를 반환해야 할 때 undefined를 반환합니다.

여기 내 코드입니다.

function test(){ 
    $.ajax({ 
    url:"", 
    dataType:"json", 
    type:'POST', 
    data:{countMedia:'true'}, 
    success:function(data){ 
return data.value; 
    } 
    }); 
} 

alert(test()); // returns undefined when it should return an int value 

또한 문서 내부에 함수를 작성할 수 있습니까? 이것이 내가 그것을 사용해야하는 곳이다.

+1

아약스는 비동기식이며, 성공 콜백이 발생하기 전에 'test'가 반환됩니다. – zzzzBov

+0

AJAX에 URL이 없다면 – Sebastien

+0

으로 전화 해주세요. 설명해 주셔서 감사합니다. 그래서, 내가 아약스 함수 하나를 쓰는 가능성은 의문의 여지가 없다. – NaN

답변

1

$.ajax은 비동기이므로 은 AJAX 콜백의 값을 반환하면 안됩니다.

요청이 완료되면 실행할 함수 대신 테스트 함수에 콜백을 전달해야합니다. 이 같은

뭔가 : (당신이 의견 요청으로)

function test(callback){ 
    $.ajax({ 
    url:"", 
    dataType:"json", 
    type:'POST', 
    data:{countMedia:'true'}, 
    success:function(data){ 
     callback(data.value); 
    } 
    }); 
} 

test(function(data) { 
    alert(data); 
}); 

이 PARAM로 데이터 요청을 전달하려면 :

function test(requestData, callback){ 
    $.ajax({ 
    url:"", 
    dataType:"json", 
    type:'POST', 
    data:requestData, 
    success:function(data){ 
     callback(data.value); 
    } 
    }); 
} 

test({countMedia:'true'}, function(data) { 
    alert(data); 
}); 
+0

좋습니다. 이것은 나에게 의미가있다. 고마워. 지금까지 최고의 답변. :) 만약 당신이 제안하고있는 것처럼 콜백을 사용하는지 말해 줄 수 있습니까? 또한'데이터 '를 매개 변수로 전달할 수 있습니까? – NaN

+0

그것이 당신을 도왔다 니 기쁩니다. 예, 가능합니다. – letiagoalves

+0

좋아요. 다시 말하지만, 여기에 내 노부 빛을 용서 해주세요.하지만 어떻게'test() '를 호출할까요? 방금'test()'를 시도했지만 경고를 기다리고 있지만 아무것도 얻지 못했습니다. – NaN

0

AJAX는 (비동기) 작동 방법입니다.

function test(){ 
    $.ajax({ 
    url:"", // No url found here 
    dataType:"json", 
    type:'POST', 
    data:{countMedia:'true'}, 
    success:function(data){ 
    alert(data.value) 
    } 
    }); 
} 
test(); 
+0

값을 저장하고 설정 한 후에 사용하는 방법이 있습니까? – NaN

+0

당신이 할 수있는 가장 좋은 방법은, 다른 함수를 작성하고 그 함수를 onSuccess of ajax에 호출하고 거기에'data'를 전달하는 것입니다. –

관련 문제