使用php json_编码javascript中接收的数据以使用chart.js库显示图形时遇到的困难
我正在尝试使用chart.js javascript库显示一个图形。我用PHP代码从数据库中获取数据,并通过使用json_encode方法从PHP中获取js var将其发送到javascript。数据实际上是表格“湿度”和“温度”的两个字段。在接收到js中的数据后,当我尝试从接收到的js对象获取“湿度”和“温度”值时,我得到了TypeError:jData在hum=jData.湿度行未定义;其中jData是从PHP中的脚本接收数据的js函数中的参数 在获取值之前,我尝试解析jData以将其转换为js对象,但随后在第wData=JSON.parsejData;行收到SyntaxError:JSON.parse:unexpected字符;。很少有帖子会出现同样的错误,告诉我不应该使用解析,因为jData已经是js对象形式了 这是我的密码: php代码:使用php json_编码javascript中接收的数据以使用chart.js库显示图形时遇到的困难,javascript,php,json,chart.js,Javascript,Php,Json,Chart.js,我正在尝试使用chart.js javascript库显示一个图形。我用PHP代码从数据库中获取数据,并通过使用json_encode方法从PHP中获取js var将其发送到javascript。数据实际上是表格“湿度”和“温度”的两个字段。在接收到js中的数据后,当我尝试从接收到的js对象获取“湿度”和“温度”值时,我得到了TypeError:jData在hum=jData.湿度行未定义;其中jData是从PHP中的脚本接收数据的js函数中的参数 在获取值之前,我尝试解析jData以将其转换为
foreach($stmt->fetchAll() as $k=>$v) {
$WData[] = $v;
}
?>
<script>
var WData = <?php echo json_encode($WData);?>;
console.log(WData);
dspChrt(WData);
</script>
根据我以前在JS中呈现PHP json数据的经验,我可以将其呈现为字符串,然后对其进行解析。像这样的
var WData = "'"+<?php echo json_encode($WData);?>+"'";
jData= JSON.parse(wData);
如果在解析之前执行console.logjData,那么在控制台中会得到什么?或者我猜在你的例子中是console.logWData;将是sameit以以下形式显示数组数据:11811[…][0…999] [0…99] 0:Object{湿度:77.7,温度:22.1}所以它已经是一个对象了,不需要做JSON.parse。如果在dspChrt函数中执行console.logjData,您会得到相同的输出吗?无论我是登录php脚本部分还是dspjData函数,我都会得到相同的结果,但随后它显示TypeError:jData未定义,如我在opc中所述。您能帮助我理解如何将其放入代码中吗。我所理解的是替换var WData=;使用var WData='+';在php代码中。而关于jData=JSON.parsewData。你的意思是我在dspchrtwData中接收到jData之后解析它吗?我使用了我提到的方式&我在解析时得到了与之前相同的错误,即:SyntaxError:JSON.parse:JSON数据第1列第1行的意外字符
var WData = "'"+<?php echo json_encode($WData);?>+"'";
jData= JSON.parse(wData);