动态莫里斯行字符串转换错误
问题描述:
我试图做莫里斯折线图与使用PHP MySQL数据..但我得到数组字符串转换错误在我的控制台时,我调试。下面是我的代码动态莫里斯行字符串转换错误
<?php
try { $stmt = $db->prepare(" SELECT register_date FROM members ");
$stmt->execute();
}
catch(PDOException $e) {
echo '<p class="bg-danger">'.$e->getMessage().'</p>';
}
$chart_data = array(); // define array
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$signup = date('F d Y ', strtotime($row["register_date"]));
$chart_data .= "{ date: '" .$signup. "' },";
}
?>
<script type="application/javascript">
Morris.Line({
element: 'signups', // div id
data: [<?php echo $chart_data; ?>],
xkey: 'date',
ykeys: 'date',
lables: 'sigups',
hidehover: 'auto'
});
</script>
答
$chart_data
包含无效JSON。
请不要发明轮子,用json_encode
:
$chart_data = array(); // define array
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$signup = date('F d Y ', strtotime($row["register_date"]));
$chart_data[] = ['date' => $signup];
}
JS-部分:
Morris.Line({
element: 'signups', // div id
data: <?php echo json_encode($chart_data); ?>,
xkey: 'date',
ykeys: 'date',
lables: 'sigups',
hidehover: 'auto'
});
如果我赞同json_encode($ chart_data)。我得到遗漏的类型错误:无法读取的不确定 –
财产“匹配”有关的代码什么线? –
简单搜索提出这个https://stackoverflow.com/questions/24601985/morris-js-uncaught-typeerror-cannot-read-property-match-of-undefined –