2017-05-24 9 views
-1

다른 코드와 설정을 시도했지만 어떻게 작동하는지 아직 알지 못합니다. 제가jQuery 함수의 루프 스루 (loop through) 값

$(document).ready(function() { 

var myArray = [ 'AB', 'AC'] 

function makeSpaceInactive(spaceKey) { 
    jQuery.ajax({ 
     contentType: 'application/json', 
     type: 'POST', 
     url: '/rpc/json-rpc/confluenceservice-v2/setSpaceStatus', 
     data: '["SPACEKEY", "ARCHIVED"]', 
     success: function(response) { 
      console.log(response); 
     }, error: function(response) { 
      console.log(response); 
     } 
    }); 
}); 

$.each(myArray, function (index, value) { 
    makeSpaceInactive(value); 
}); 

}) 

에서 myArray있는 숫자는 SPACEKEY 인 데이터 기능을 갖는 makeSpaceInactive 함수 반복한다 .. jQuery를의 makeSpaceInactive 함수에서 배열에서 모든 값을 추가 할 것이다. 하지만 myArray 값으로 스페이스 키 데이터를 대체하는 방법을 모르겠다?

+0

전체 배열을'makeSpaceInactive' 함수 나 한 번에 하나의 값으로 전달 하시겠습니까? – rbock

+0

한 번에 하나의 값! –

+1

[Pass array to ajax request to $ .ajax()]의 가능한 복제본 (https://stackoverflow.com/questions/8890524/pass-array-to-ajax-request-in-ajax) – Liam

답변

0

글쎄, 마지막으로 })과 같은 sintax 오류가 있지만 그 질문에 대해 이해하지 못했습니다. 내가 겪은 문제는 POST 매개 변수를 AJAX 요청에 전달하는 방법을 알고 있다는 것입니다.

{arrayelement:spaceKey}으로 바꾸기 만하면 더 많은 요소를 쉼표로 구분하여 전달해야합니다. 예. {arrayoneelement:spaceKey1,arraytwoelement:spaceKey2}

fiddle을 참조하십시오. (나는 AJAX 요청을 주석 처리했지만 데이터 값은 올바르게 채워져있다.).

희망이 도움이됩니다. 더 많은 조언이 필요하면 알려주세요.

EDIT : 피들 링크가 잘못되어 수정되었습니다. 죄송합니다.

+0

감사합니다. 나는 그것을 시도했지만 피들에서 작성한 스크립트에 다음 오류가 표시됩니다. "요청 본문을 JSON으로 구문 분석 할 수 없습니다." –

+0

@DannyvandenBerg 나는 AJAX 호출에서 에러가 발생한다고 가정하고'contentType : 'application/json','/'rpc/json-rpc/confluenceservice-v2/setSpaceStatus'는 JSON이어야합니다. 그 오류는 당신이 요청하는 "setSpaceStatus"에서 오는 것이라고 생각합니다. contentType을 'text/plain'으로 설정하십시오. –

0

귀하의 의견에서 말씀 드렸듯이 한 번에 하나의 값을 전달하여 여러 AJAX 요청이 이루어질 수 있습니다. 문제는 "AJAX"의 "A"는 "비동기"를 의미합니다. 따라서 새로운 요청을 보내기 전에 프로그램이 응답을 기다릴 것이라고 확신 할 수 없습니다.

솔루션을 변경하고 싶을 수 있습니다. 배열 내부의 모든 요소에 대해 여러 AJAX 요청을하는 것이 좋지 않다고 생각됩니다. 배열을 데이터로 보내 서버 측 프로그램에서 해석하도록하십시오. 예 :

function makeSpaceInactive(myArray) { 
    jQuery.ajax({ 
     contentType: 'application/json', 
     type: 'POST', 
     url: '/rpc/json-rpc/confluenceservice-v2/setSpaceStatus', 
     data: {arrayData:myArray,status:'ARCHIVED'}, 
     success: function(response) { 
      console.log(response); 
     }, error: function(response) { 
      console.log(response); 
     } 
    }); 
}); 

제공된 스크립트가 배열을 루프하고 적절한 응답을 반환하도록합니다. 희망이 도움이됩니다.

+0

감사합니다. 아마 내가 일하는 것 같아. 하지만 지금은 다음과 같은 오류가 나타납니다 : RPC 메서드를 찾을 수 없습니다 : 1 매개 변수를 복용 setSpaceStatus –

0

나는 그것을 마침내 얻었다. 협조 해 주셔서 감사합니다.

var myArray ['spaceKey', 'spaceKey']; 

function makeSpaceInactive(value) { 
    jQuery.ajax({ 
     contentType: 'application/json', 
     type: 'POST', 
     url: '/rpc/json-rpc/confluenceservice-v2/setSpaceStatus', 
     data: JSON.stringify([value, "ARCHIVED"]), 
     success: function(response) { 
      console.log(response); 
     }, error: function(response) { 
      console.log(response); 
     } 
    }); 
}; 

$.each(myArray, function (index, value) { 
    makeSpaceInactive(value); 
});