2012-10-13 2 views
0

jQuery의 getJson()을 이해하려고합니다. 내가 변수를 반환 배열을 넣으려면 어떻게 해야할지 모르겠어. 이 코드에서 시작 버튼을 클릭하면 정의되지 않습니다. 나는 PHP 파일의 모든 것이 작동한다는 것을 알기 때문에 propblem이 있다고 생각하지 않습니다.getJSON 값을 변수에 넣는 방법

function getGameData(){ 
var difLevel = $("input[@name=difLevel]:checked").val(); 
var gameData = (function(){ 
    var json = null; 
    $.getJSON('/Spelling4/core/proof_Test_JSON_process4.php',{difNo : difLevel},function(data){ 
     json = data; 
    }); 
    return json; 
}); 

return gameData; 

} 
$('#startButton').click(function(e) { 
    var gameData = getGameData(); 
    e.preventDefault(); 
alert(gameData[1]); 
}); 

답변

1

아약스 비동기, 당신은 함수를 호출하고 아약스 요청이 완료되지 않은 경우 함수가 null 당신이 지연된 객체를 사용한다 반환 할 때. 속성 선택자가 잘못되어 @을 삭제해야합니다.

var difLevel = $("input[name=difLevel]:checked").val(); 
+0

@을 제거해야하는 이유는 무엇입니까? 지금까지 잘 작동했습니다. 귀하의 회신에 감사드립니다. –

1

JSON 반환 데이터는 지정한 json 변수로 끝납니다. 그러나 JSON 쿼리는 async이므로 getGameData() 함수가 완료되면 응답이 반환되지 않습니다.

JSON 데이터를 반환하는 대신 $ .getJSON (...) 내에 사용해야합니다.

0

나는 gamedata에 함수를 저장하고 있다고 생각합니다. 게임 데이터()로 값에 액세스 할 수 있어야합니다.

관련 문제