2011-12-28 4 views
-3

데이터를 반환하는 ajax 호출이 있습니다. json 데이터를 다시 사용하는 방법

지금은 UI를 업데이트하려면이 테이블 데이터를 사용하려면 내가 아약스 반환 데이터
$.ajax({ 
      url : "quoteSearch", 
      dataType : "json", 
      data : $("#searchCriteria").serialize(), 
      success : function(data) { 
       populateTable(data); 

      }, 
      error : function(data) { 
       console.log(data); 
      } 
     }); 

을 말해봐.

입력란에 10을 추가한다고 말하면됩니다. 클릭 버튼을 클릭하면 열의 모든 따옴표에 10을 더합니다.

어떻게해야합니까?

+1

'ajax'와 어떻게 관련이 있습니까? – zerkms

+0

위의 예에서 이전 데이터 인 ajax 요청 (예 : "data")과 이전 데이터 외에 하나 더 많은 필드를 추가하려는 경우 어떻게해야합니까? –

답변

0

사용자가 단추를 클릭 할 때 특정 시간 이외의 시간에 코드의 다른 부분에서 ajax 호출에 의해 반환 된 data을 사용하는 방법을 묻는 것처럼 보입니다. 그렇다면, 당신은 다음, 아약스 호출 외부 범위와 변수에 data을 저장할 수있는 코드의 다른 부분에서 액세스 :

정의되지 않은 테스트 당신이 AJAX 호출하기 전에 버튼을 클릭하면 허용하는 것입니다
var ajaxData; 

$.ajax({ 
    url : "quoteSearch", 
    dataType : "json", 
    data : $("#searchCriteria").serialize(), 
    success : function(data) { 
     ajaxData = data; 
     populateTable(data); 
    }, 
    error : function(data) { 
     console.log(data); 
    } 
}); 

$("#yourbutton").click(function(){ 
    // do something with ajaxData 
    if (typeof ajaxData != "undefined") { 
     var valueToAdd = $("#yourinput").val(); 
     // your processing here 
    } 
}); 

어떤 점에서 ajaxData이 (분명히) 아직 값을 가지지 않았을 때 끝났습니다.

populateTable() 함수를 업데이트하여 추가 할 값이있는 매개 변수를 사용할 수 있습니다. 그런 다음 아약스 성공 내에서 해당 매개 변수를 0으로 설정하지만 버튼 클릭 핸들러에서 해당 매개 변수를 입력 값으로 설정합니다. 아마도 populateTable() 함수는 이미 data에서 값을 검색하는 방법을 알고 있으므로 해당 기능 내에서 추가 작업을 수행 할 수 있습니다. 나는 나머지 코드를 보지 않고서는 더 구체적인 것을 조언 할 수 없다.

0

populateTable 함수 내에서 데이터를 반복하고 값을 사용하려면 $.each(data,function(k,v){ ... })을 사용해야합니다. data 또는 조작하려는 html 또는 populateTable 기능을 보지 못하면 더 구체적으로 대답하기가 어렵습니다.

관련 문제