在php

时间:2018-09-25 12:59:53

标签: javascript php json

我正在尝试以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 ']'

0 个答案:

没有答案