2013-12-11 2 views
0

2의 값을 function getOptionsList(fieldname_validation,data_user_id)에 성공적으로 전달하는 함수가 있습니다.하지만 어떻게 든 .post statment의 비동기 성질이 값을 가져 왔다고 생각합니다. 나는 getOptionsList 함수에서 .post를 수행하고, data_user_id는 다음에 전달 된 함수에서 정의되지 않습니다. 좋아요 :jQuery를 사용하여 .post 뒤에 변수가 전달되지 않음

function getOptionsList(fieldname_validation,data_user_id){ 
     $.post('Controller.php', 
     { 
      action: 'get_options_list', 
      user: userJson 
     }, 
     function(data, textStatus, fieldname_validation,data_user_id) { 
      data_user_id=data_user_id; 
      showOptionsList(data, fieldname_validation,data_user_id); 
      $('#indicator').hide(); 
     }, 
     "json"  
    ); 
} 

function showOptionsList(jsonData, fieldname_validation,data_user_id){ 

    alert('showOptionsList ran!'); 
    alert(data_user_id);//Here the same variable will alert as undefined. 
} 

이 문제를 어떻게 해결할 수 있습니까?

+1

어떻게 jQuery의 $ .post 방법은 네 번째 인수로 data_user_id을 반환 :

해결책은 (아마도 fieldname_validation뿐만 아니라 등)이 매개 변수를 제거하는 것입니다? – adeneo

답변

2

data_user_id을 내부 함수의 매개 변수로 선언 했으므로 외부 메서드의 매개 변수와 구별됩니다. $.post 메서드는 콜백에 3 개의 매개 변수만을 제공하기 때문에 네 번째 매개 변수는 항상 undefined (세 번째 매개 변수는 jqXhr 개체가 될 것입니다. 예상하지 못한 개체입니다).

function getOptionsList(fieldname_validation,data_user_id){ 
     $.post('Controller.php', 
     { 
      action: 'get_options_list', 
      user: userJson 
     }, 
     function(data, textStatus) { 
      showOptionsList(data, fieldname_validation, data_user_id); 
      $('#indicator').hide(); 
     }, 
     "json"  
    ); 
} 
+0

아마도'data_user_id = data_user_id;'도 제거해야합니다. 차이는 아니지만 쓸모가 없습니다. –

+0

@FelixKling 아 그래, 나는 그것을 보지 못했다. 감사. –

관련 문제