2014-04-17 1 views
1

드롭 다운 선택 (편집 : 이제 JSON 형식) : 상관없이JSON 데이터를 변환하는 것은이 내 아약스 호출에서 반환되는 데이터입니다 옵션

[{"PROCEDURE_ID":362183,"PROCEDURE_NAME":"Biopsy, Breast; Lumpectomy"}, {"PROCEDURE_ID":558975,"PROCEDURE_NAME":"Biopsy, Cervix"},{"PROCEDURE_ID":558977,"PROCEDURE_NAME":"Biopsy, intrauterine"},{"PROCEDURE_ID":558976,"PROCEDURE_NAME":"Biopsy, Libial"}] 
내가 다운 선택 드롭에 넣고하려고

무엇 나는, 실패, 선택 - 옵션 중 하나가 정의되지 않은 또는 jquery 던져 오류가 있습니다.
이것은 내가 지금까지 두 가지 방법을 시도했습니다 것입니다 (selField 동적 요소)

success: function(json){ 

     if (json != '') 
      var vx='<option value="">All</option>'; 
       $.each (json.DATA, function(k, v){ 

        vx+='<option value="'+k.Procedure_ID+'">'+v.Procedure_Name+'</option>'; 
       }); 
       $(selField).html(vx); 
       } 
+0

왜 WDDX 대신 JSON으로 데이터를 반환하지 않는 것이 좋을까요? 원격 CFC 호출에'returnformat = "json"'을 추가하면 그렇게 할 것입니다. –

+0

처음에 시도해 보았습니다. 그러나 여전히 그것을 선택 상자의 옵션으로 넣는 것이 어렵다는 것을 알게되었습니다. 성공 함수 안에있는 코드는 그것을위한 것이었다. 또한 $ .each (res.DATA, function (k, v))를 사용하면 jquery 오류가 발생합니다. 모든 게임이고 json 형식으로 변경할 수는 있지만 문제는 내가 선택한 데이터를 선택하여 변환하는 것입니다. -options –

+0

그런 다음 jQuery 코드에 문제가 있거나 CF 코드에 오류가 있습니다. –

답변

3

난 당신이 게시 코드에서 볼 수 있다는 잘못된 몇 가지가 있습니다. 먼저 Scott Stroz가 언급했듯이 낙타의 경우 .each 루프에서 JSON 데이터를 참조하지만 JSON 데이터는 실제로 모든 대문자로 표시됩니다. JavaScript는 대소 문자를 구분하므로 일치해야합니다. 두 번째로 을 참조하는 중입니다. .each 루프에서 잘못된 인수를 사용하고 있습니다. 함수의 첫 번째 인수 (코드에서 k)는 루프 인덱스입니다. 코드의 두 번째 인수 (v)는 요소 데이터입니다. 그래서 당신은 모두 PROCEDURE_IDPROCEDURE_NAME 지금처럼 v 인수를 사용하여 참조 할 필요가 : 코멘트에서

vx+='<option value="'+v.PROCEDURE_ID+'">'+v.PROCEDURE_NAME+'</option>'; 

또한 당신이 중 하나를 JSON 응답을 구문 분석되지 않은 것으로 보인다. 그러면 반복에서 .each 루프가 유지됩니다. JSON.parse()을 사용하거나 AJAX 호출의 dataType'json'assuming that it is properly formatted으로 정의하여이 작업을 수행 할 수 있습니다.

간단한 jsFiddle을 작성하여 .each JSON 객체의 반복이 어떻게 작동하는지 알려드립니다.

관련 문제