这是我的功能:
var myVar = setInterval(myTimer, 500);
function myTimer()
{
xhttp=new XMLHttpRequest();
xhttp.onreadystatechange = function()
{
if (this.readyState == 4 && this.status == 200)
{
x=this.responseText;
window.alert("x,jsondata="+x);
var jsondata = JSON.parse(x);
document.getElementById("1").innerHTML = jsondata[0].1;
document.getElementById("2").innerHTML = jsondata[0].2;
document.getElementById("3").innerHTML = jsondata[0].3;
document.getElementById("4").innerHTML = jsondata[0].4;
document.getElementById("5").innerHTML = jsondata[0].5;
document.getElementById("6").innerHTML = jsondata[0].6;
document.getElementById("7").innerHTML = jsondata[0].7;
document.getElementById("8").innerHTML = jsondata[0].8;
document.getElementById("9").innerHTML = jsondata[0].9;
}
}
xhttp.open("GET", "getData.php?q="+<?php echo $fileToAccess;?>, true);
xhttp.send();
}
这是getData.php:
<?php
$file=$_REQUEST['q'];
$myfile=file_get_contents($file);
$json=json_decode($myfile);
echo $json[1];
?>
这就是我的json文件的样子:
[{"str": "user2"},{"1": "","2": "","3": "","4": "","5": "","6": "","7": "","8": "","9": ""}]
我添加了一个计时器,以便在json文件的帮助下不断更新我的按钮值。但我在第
行收到错误document.getElementById(“1”)。innerHTML = jsondata [0] .1;
答案 0 :(得分:1)
你正在做的事情非常正确。但由于密钥是数字,因此您必须使用['1']
来获取密钥。像这样:
document.getElementById("1").innerHTML = jsondata[0]['1'];
在Javascript中,主要有两种从对象获取属性的方法
obj.prop
和
obj['prop']
通常,您可以说obj.prop
仅在属性为有效变量名称时才起作用(不包含特殊字符,数字等)。