我正在尝试以json格式将一些数据从PHP传输到javascript。数据实际上是数据库表的两个字段,“湿度”和“温度”。在以数组形式($ wData)从php中的数据库中获取数据之后,我使用json_encode将其编码为json,在js var(WData)中获取引用,并将其作为参数(jData)传递给js函数。
在js函数中接收到的数据看起来很好。但是,当我尝试使用jData.humidity或jData.temperature从中提取“湿度”或“温度”值时,它将在控制台中显示“未定义”结果。还有一件事是,在我编写“ jData”之后,“湿度”或“温度”变量没有出现在IDE中,而应该出现在它们中。
尽管如果我放置jData [0],它会显示两个变量的值。我需要分别获取两个变量的值,因为我需要使用它们在图表中显示它们自己的值。
但是,结果表明至少已接收到数据。所以我的问题是如何在我的js代码中获取不同变量中的“湿度”和“温度”值。
这是我的代码:
PHP代码
$result = $stmt->setFetchMode(PDO::FETCH_ASSOC);
$WData = $stmt->fetchAll();
/*
echo "<pre>".print_r($WData, true)."</pre>";
die();
*/
?>
<script>
var WData = <?php print_r(json_encode($WData));?>;
// console.log(WData);
dspChrt(WData);
</script>
JS代码
function dspChrt(jData) {
//jData = JSON.parse(wData);
console.log(jData[0]); //outputs value
console.log(jData.humidity); //outputs 'undefined'
hum = jData.humidity;
tem = jData.temperature;
humArray.shift();
humArray.push(hum);
temArray.shift();
temArray.push(tem);
“。print_r($ WData,true)。”“; die();
Array
(
[0] => Array
(
[humidity] => 77.7
[temperature] => 22.1
)
[1] => Array
(
[humidity] => 81.7
[temperature] => 28.1
)
[2] => Array
(
[humidity] => 67.21
[temperature] => 28.9
)
[3] => Array
(
[humidity] => 11.11
[temperature] => 22.11
)
[4] => Array
(
[humidity] => 15
[temperature] => 77.7
)
[5] => Array
(
[humidity] => 15
[temperature] => 77.7
)
console.log(jData);输出
[0…999]
[0…99]
0: Object { humidity: "77.7", temperature: "22.1" }
1: Object { humidity: "81.7", temperature: "28.1" }
2: Object { humidity: "67.21", temperature: "28.9" }
3: Object { humidity: "11.11", temperature: "22.11" }
4: Object { humidity: "15", temperature: "77.7" }
5: Object { humidity: "15", temperature: "77.7" }
console.log(jData [0]);输出
{
"humidity": "77.7",
"temperature": "22.1"
}
console.log(jData.humidity)输出
undefined
console.log(jData.humidity []);输出
SyntaxError: expected expression, got ']'