我试图将一些数据从PHP传输到json格式的javascript . 数据实际上是数据库表的两个字段,“湿度”和“温度” . 在以数组($ wData)的形式从php中的数据库中获取数据之后,我使用json_encode将其编码为json,在js var(WData)中获取引用并将其作为参数(jData)传递给js函数 .
在js函数中接收后的数据显示正常 . 但是当我尝试使用jData.humidity或jData.temperature从中提取“湿度”或“温度”值时,它会在控制台中显示“未定义”结果 . 还有一件事是,'湿度''或'温度'变量在我写'jData'之后不会出现在IDE中 .
虽然如果我把jData [0],它显示两个变量的值 . 我需要分别获取两个变量的值,因为我需要使用它们在图表中显示自己的值 .
但结果显示数据至少已收到 . 所以我的问题是如何在不同的变量中获得'湿度'和'温度'的值,就像在我的js代码中那样 .
这是我的代码:
PHP CODE
$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 CODE
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); output
[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]); output
{
"humidity": "77.7",
"temperature": "22.1"
}
console.log(jData.humidity) output
undefined
console.log(jData.humidity[]); output
SyntaxError: expected expression, got ']'