2011-09-15 3 views
1

내 코드가 일부 json을 쿼리하지만 결과가없는 것으로 보입니다. 방화 광을 사용하여 디버깅 할 때 요청이 완료되고 예상되는 json (bottom)을 반환하는 것을 볼 수 있습니다.Jquery json이 okey를 요청했지만 결과가 없습니다.

문제는 다음 행 (var 옵션 = ...)에 도달하지 못하므로 문제가 있다고 생각합니까?

$.getJSON("Gateway.php?action=UserAction&subAction=json", function(result) { 
    var options = $("#creatorUserId"); 
    $.each(result, function(item) { 
     options.append($("<option />").val(item.id).text(item.value)); 
    }); 
}); 

json으로 :

json[{"id":"1","value":"Teddy"},{"id":"2","value":"Fred"},{"id":"3","value":"Roel"}] 
+2

는 응답합니까 th를 포함하다 'json'의 시작 부분에 오세 문자가 있습니까? 유효하지 않은 json이고 jquery는 실패를 고려한 다음 성공 콜백을 실행하지 않습니다 (자동으로 실패합니다). – davin

+0

또한, 방화 광에서 볼 수있는 것은 호출의 동기 실행이지만 응답은 아닙니다. 나는. getJSON을 실행할 때 디버거를 단계별로 실행하면 콜백을 실행하고 실행하는 것을 기대하지는 않습니다. 동기식으로 수행하지 않기 때문입니다. – davin

+0

아, "json"이라고 표시된 코드가있는 부분이 반향 음이었습니다. 문제를 해결하지 못했습니다. 귀하의 두 번째 의견에 : 그것은 Gateway.php를 firebug 콘솔에서 가져오고 디버거 자체에서는 응답하지 않습니다. –

답변

1

$.each()위한 콜백 얻어 개의 파라미터 (최대) - 첫번째 인덱스 번호이고, 두 번째는 값이다. item은 항상 항목 번호가 아닌 색인 번호입니다.

이 시도 :

Gateway.php?action=UserAction&subAction=json가 반환해야합니다 :

[{"id":"1","value":"Teddy"},{"id":"2","value":"Fred"},{"id":"3","value":"Roel"}] 

에 javscript/JQuery와 :

$.getJSON("Gateway.php?action=UserAction&subAction=json", function(result) { 
     var options = $("#creatorUserId"); 
     $.each(result, function(num,item) { 
      options.append($("<option />").val(item.id).text(item.value)); 
     }); 
    }); 

또는 약간 덜 jQuery를 사용하기 :

$.getJSON("Gateway.php?action=UserAction&subAction=json", function(result) { 
     var options = $("#creatorUserId"); 
     while(result) { 
      var item = result.shift(); 
      options.append($("<option />").val(item.id).text(item.value)); 
     }; 
    }); 
+0

감사합니다. 초기 문제는 해결하지 않았지만 나머지 스크립트는 수정했습니다. –

+0

나는이 코드를 오늘 자신의 코드에서 사용했다.'$ .ajax'가 에러 콜백을 지원하는 동안'$ .getJSON'은 지원하지 않는다는 것을 발견했다. 그래서 다음 번에 좀더 장황한'$ .ajax' 메쏘드를 사용하는 것을 고려해 볼 수 있습니다. 그래서 오류 콜백은 문제를 추적하는데 도움이 될 것입니다. – Blazemonger

관련 문제