2015-10-24 3 views
0

мне нужно помощь, чтобы понять это, у меня есть простая строка JSON, что мой PHP скрипт возвращает: { "questions" : "question1"}Доступ Json объект Javascript

и мой код для доступа к ней является:»

<script> 

    var xhttp = new XMLHttpRequest(); 


xhttp.onreadystatechange = function() { 
if (xhttp.readyState == 4 && xhttp.status == 200) { 
    var jsond = JSON.parse(xhttp.responseText); 
    document.getElementById("demo").innerHTML = jsond['questions']; 
    document.getElementById("demo").innerHTML = jsond.questions; 
    } 
    } 
    xhttp.open("GET", "make_exam.php", true); 
    xhttp.send(); 
</script> 

но по какой-то причине я не знаю, он показывается неопределенным. я пытался понять все шаг за шагом, но, похоже, не вижу, что я делаю неправильно. Любая помощь, понимающая это или совет о том, как исправить, ценится.

мой скрипт php внизу, я не думаю, что ошибка здесь, но что я знаю.

 $file= "my.json"; 

     $json = json_encode(file_get_contents($file)); 
     if(empty($json)) 
     { 
      echo "nothing"; 
     } 
     else 
     { 
      echo $json; 
     } 

ребята, это полный HTML-файл

<!DOCTYPE html> 
<html> 
<head> 
</head> 

<body> 
<button onclick="loadDoc()"> "Make Exam" </button> 


<p id="demo"> </p> 

</body> 



<script type="text/javascript"> 
function loadDoc() { 


    var xhttp = new XMLHttpRequest(); 
    xhttp.onreadystatechange = function() { 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
    var jsond = JSON.parse(xhttp.responseText); 
    alert(jsond); 
    document.getElementById("demo").innerHTML = '<p>'+ jsond.questions +'</p>'; 
    } 
    } 
    xhttp.open("GET", "make_exam.php", true); 
    xhttp.send(); 

    document.getElementById("demo").innerHTML = "hi"; 

} 
</script> 







</html> 
+0

также .. у меня есть два документа.getElementByID, потому что я попробовал оба. –

+0

Что такое console.log (jsond)? – AdamJeffers

+0

Попробуйте открыть Dev Tools (в Chrome) или Firebug (в Firefox) и проверить вкладку в сети, чтобы увидеть ответ и вкладку консоли, чтобы проверить наличие ошибок JS. Затем вернитесь с дополнительной информацией :) –

ответ

0

Вы уверены, что ключ "вопросы" существует в файле? Что это возвращает

document.getElementById("demo").innerHTML = jsond 
+0

Я получаю это; {"questions": "question1"}, однако я просто хочу увидеть question1 –

+0

Если вы получаете {"questions": "question1"} как свои данные, строка, вероятно, не обрабатывается json-объектом. Попытка проверить аналогичный эффект возвращает Object как вывод для jsond. https://jsfiddle.net/zo24o3e0/ – Kalyan

Смежные вопросы