1
이 함수는 JSON 객체를 반복하고, 새 객체를 만들고,이 새 객체를 기능javacript 함수에서 반환 한 배열 내부의 객체에 액세스하는 방법
function getTestQuestions() {
// alert('10');
var sessionQuestions = [];
$.getJSON('testservice.php?action=getQuestions', function(json){
if (json.your_questions.length > 0) {
var totalQuestions = json.your_questions.length;
totalQuestions_global = totalQuestions;
for (var i = 0; i < totalQuestions; i++) {
var question_object = new Object();
question_object.serialNo = i;
question_object.passage = json.your_questions[i]['passage'];
question_object.cur_question = json.your_questions[i]['question'];
question_object.option1= json.your_questions[i]['option1'];
question_object.option2 = json.your_questions[i]['option2'];
question_object.option3 = json.your_questions[i]['option3'];
sessionQuestions.push(question_object);
}
}
});
return sessionQuestions;
}
에 의해 반환 된 다음 함수는이 함수를 호출합니다. 하지만 배열 내부의 개체에 액세스하는 데 문제가 있습니다. 코드를 참조하십시오 : 마지막 두 줄의
function initialTestLoaded() {
var allQuestions = getTestQuestions();
$('.current_quest').text(allQuestions[0]['serialNo']);
$('.total_quest').text(testQuestions.length);
코드는 정의의 "serialNo"ppty에 액세스 할 수 없습니다되는 오류를 반환합니다.
여기에 질문을 게시 한 것은 이번이 처음이며, 좋은 사람들은 항상 큰 도움이 될 것이라고 믿습니다. 감사합니다
PHP에서
것이 아니요, 다만 PHP로 JSON 응답을 통과 한 후 json_decode ($의 JSON, true)를 사용하여 자동으로 변환됩니다 배열로. 그런 다음 해당 배열을 사용하여 배열 내의 요소에 액세스합니다. $ array [ 'passage'] 같은 것입니다. –
'$ .getJSON'이 비동기 함수이고'getTestQuestions' 함수가 결과를 기다리지 않고 항상 정의되지 않은 값을 반환하기 때문에 이런 일이 발생합니다. –
감사합니다. 반향하기 전에 PHP에서 json_decode가 필요합니까? 대부분의 기사는 javascript에있는 json_encoded 객체에 액세스하는 것이 좋습니다. 내 도전은 자바 스크립트에서 json_encoded 객체에 액세스 할 수 없다는 것이 아니라 모든 항목을 반복하고 하나의 함수로 배열에 푸시 한 후이 함수를 호출하면이 배열의 요소에 액세스하는 것 같습니다. 다른 기능에서 작동합니다. 함수 선언 내에서 Console.log를 실행하면 배열이 제대로 채워 졌음을 나타내지 만 호출 함수 내부에는 정의되지 않은 것으로 표시됩니다. 나를 안내 해줘. – UfereP