我试图从我的Javascript代码中获取PHP数据。这应该显示在dayta
div id中。我最终获得的是undefined
而不是期望的结果(在本例中是我的JSON文件中的firstname
)。我不确定为什么会这样。
我的 JavaScript 代码:
window.onload = function(){
var http = new XMLHttpRequest();
http.onreadystatechange = function(){
if (http.readyState == 4 && http.status == 200){
var dayta = document.getElementById('datadisplay');
dayta.innerHTML = http.response.firstname;
}
}
http.open("GET", "myphpfile.php", true);
http.send();
}
我的 PHP 代码(myphpfile.php
):
<?php
$content = file_get_contents('somejsonfile.json');
print_r($content);
$dbcon->close();
?>
包含的PHP代码只是我代码的一部分,但它包含与我的问题相关的所有部分。
$content
输出一个JSON文件,就像它指向的那样。如果我回复$content
,我可以验证内容是否按预期流出。
因此,问题很可能出在我的JavaScript代码上。但我无法确切地指出什么是错的。
我的 JSON 文件(somejsonfile.json
):
{"firstname": "Ki ki ki ma ma ma"}
我理解接近这个特定示例的最明显的方法是让JavaScript文件到达JSON文件。但是,因为我正在尝试在我的生产代码中保护我的JSON文件的路径,所以我正在尝试这种方法。
答案 0 :(得分:1)
确保使用JSON.parse
获得JSON响应。这是一个快速的解决方案。我试过了,效果很好!
window.onload = function(){
var http = new XMLHttpRequest();
http.onreadystatechange = function(){
if (http.readyState == 4 && http.status == 200){
var dayta = document.getElementById('datadisplay');
var data = JSON.parse(http.responseText);
dayta.innerHTML = data.firstname;
}
}
http.open("GET", "myphpfile.php", true);
http.send();
}
答案 1 :(得分:0)
请检查此代码;
<?php
$content = file_get_contents('somejsonfile.json');
echo(json_encode($content));
?>
如果你真的看到数组,那么
global i
如果要在json文件中查询,可以使用json_decode函数转换数组并推送或删除数组项,然后使用json_encode。