2009-05-04 6 views
1

JQuery Ajax를 사용하여 데이터베이스에서 값을 검색하려고하면 웹 서비스 루틴이 호출됩니다. 웹 서비스 루틴 그러나 나는 JQuery와 아약스의 작동 방식에 대한 혼란 스러워요 제대로 설정하고 내가 필요로하는 값을 반환한다 ... 나는 성공에 따라서 값jQuery AJAX를 사용하여 웹 서비스를 통해 데이터베이스에서 데이터 가져 오기

$.ajax({ 
     type: 'POST', 
     url: 'myservices.asmx/getRowName', 
     dataType: 'xml', 
     data: ({ param1: someData, param2: someData }), 
     success: function(data) { 
      alert(data.getElementsByTagName("string")[0].firstChild.data); 
     }, 
     error: function(msg) { alert(msg.statusText); } 
    }); 

를 검색하는 방법을 모른다 , 그 함수를 통해 반환 된 데이터에 액세스 할 수 있습니다 (내가 확인하고 올바른 데이터를 반환합니다),하지만 그 함수 밖에서 데이터를 사용하려면 어떻게해야합니까?

$.ajax은 내가 필요한 데이터를 검색 할 수있는 곳을 반환합니까? 같은 ...

data = $.ajax({...all the settings...}); 

또는 ...

data = $.ajax({...settings...}).responseText; 

어떤 아이디어?

답변

3

AJAX가 비동기식 프로세스이며 AJAX 호출 결과를 코드에 할당하려고 시도하면 코드가 "중지"되어야한다고 제안하는 것과 관련하여 문제가 있습니다. 그 결과가 돌아올 때까지 거기에. Javascript로 작업하는 방식이 아닙니다. 대부분의 경우 성공 콜백 자체에서 내 데이터로 수행해야 할 작업을 수행합니다. 충분하지 않다면 데이터를 인수로 받아 들여 완료 할 때 호출하는 함수를 만드는 것이 좋습니다.

function doStuffWithData(data) { 
    // do whatever you want here 
} 

$.ajax({ 
    type: 'POST', 
    url: 'myservices.asmx/getRowName', 
    dataType: 'xml', 
    data: ({ param1: someData, param2: someData }), 
    success: function(data) { 
     doStuffWithData(data); 
    }, 
    error: function(msg) { alert(msg.statusText); } 
}); 
0
: 당신은 당신의 코드에 따라 설치에 그래서, ("이런 때 이렇게") 다른 언어에서오고있어 경우에 당신에게 이상한 것처럼 보일 수 있지만, 자바 스크립트에서 가지를 기반으로 더 많은 이벤트입니다

JQuery에서 xml을 사용하는 더 좋은 예를 찾으십시오 http://codernd.com/DevelopersFile/Reading-XML-file-using-JQuery.aspx

+1

OP의 질문에 응답하지 않았습니다. 그가 요구하는 것을 수행하기위한 실용적인 해결책을 제공 할 수 있습니까? –

관련 문제