2010-08-12 7 views
1

이 문제에 관해 많은 질문이 있지만 그 중 어느 것도 내 특정 질문에 답하는 것 같지 않습니다.jQuery ajax 함수에서 값을 반환하십시오.

아약스 호출을 포함하는 함수를 생성하는 데 문제가 있습니다. 그런 다음 값을 반환합니다.

hmis_query_temp_scalar: function(query_name) { 
     return $.ajax({ 
      url: '/php_scripts/query_temp_scalar.php', 
      data: {query_name: query_name}, 
      async: false 
     }).responseText 
    } 

을하지만 난 그게 비동기하고 싶습니다,하지만 난 async: true로 변경한다면, 난 그냥 정의되지 않은 값을 얻을 작동하지 않습니다 내가 현재 사용하고 있습니다. 이 일을하는 방법이 있습니까? 다음과 같이

나는 현재 기능을 사용하고있는 방법은 다음과 같습니다

페이지는 다음 스크립트로드 :

setQueryLink: function(query_name, type) { 
     var object = "#" + query_name; 
     var value = $.hmis_query_temp_scalar(query_name); 

     $(object).html(value); 
     $(object).attr('href', "/standard_queries.php?query=" + query_name + "&type=" + type); 
    } 

이 더 나은가요 : 다음 호출

$(document).ready(function() { 
    $.setQueryLink('active_clients', '1'); 
    $.setQueryLink('active_clients_u18', '1'); 
    $.setQueryLink('active_clients_19_59', '1'); 
    $.setQueryLink('active_clients_o60', '1'); 
... 

을 이 일을하는 방법? (나는 그것이 PHP에서 수행되어야하는 것 같아요하지만 그 순간에 원하는, 내가 자바 스크립트의 비동기 로딩 동작을 원한다) 나는 아무것도 볼 수 없지만 왜 내가 비동기 적으로 실행할 수없는 이유가있다 ?

답변

1

당신이 원하는 것은 그들을 분할하는 것입니다. 반환 할 때 호출 할 요청에 대한 성공 함수를 제공 한 다음 응답을 기반으로 조치를 취하십시오.

$.ajax({ 
    type: 'POST', 
    url: 'formService.asmx/RemoveFieldOption', 
    contentType: 'application/json; charset=utf-8', 
    data: "{'fieldId':'1', 'optionId':'1'}", 
    dataType: 'json', 
    success: action_removeFieldOptionPass, 
    error: ajaxTestFail 
}); 

function action_removeFieldOptionPass(result) { 
    $('#whatever').html(result); 
} 
관련 문제