У меня есть сайт с Bootstrap, Codeigniter и попытка использовать диаграммы Морриса для отображения некоторой динамической информации о регистрации (если вы использовали интерфейс администратора IPB, регистрация новых учетных записей за последние 7 дней - это то, что я ' м).Javascript TypeError с диаграммами Морриса
У меня есть следующие фрагменты кода:
header.php
<!-- Morris Charts CSS -->
<link href="<?php echo base_url('assets/css/morris.css'); ?>" rel="stylesheet">
<!-- jQuery -->
<script src="<?php echo base_url('assets/js/jquery.min.js'); ?>"></script>
<!-- Morris Charts JavaScript -->
<script src="http://cdnjs.cloudflare.com/ajax/libs/raphael/2.1.0/raphael-min.js"></script>
<script src="http://cdnjs.cloudflare.com/ajax/libs/morris.js/0.5.1/morris.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="<?php echo base_url('assets/js/bootstrap.min.js'); ?>"></script>
Соответствующий раздел моего index.php
<div class="panel panel-default">
<div class="panel-heading">
<i class="fa fa-bar-chart-o fa-fw"></i> Account Registrations Past 7 days
</div>
<!-- /.panel-heading -->
<div class="panel-body">
<div id="acctregs" style="height: 300px;"></div>
</div>
<!-- /.panel-body -->
</div>
<script>
var acctregs = new Morris.Line({
// ID of the element in which to draw the chart.
element: 'acctregs',
// Chart data records -- each entry in this array corresponds to a point on
// the chart.
data:
<?php echo json_encode($acct_regs); ?>,
// The name of the data record attribute that contains x-values.
xkey: 'date',
// A list of names of data record attributes that contain y-values.
ykeys: ['value'],
// Labels for the ykeys -- will be displayed when you hover over the
// chart.
labels: ['Value']
});
</script>
Как, результат эхо json_encode ($ acct_regs) ;:
{"2015-01-18":0,"2015-01-17":1,"2015-01-16":2,"2015-01-15":3,"2015-01-14":4,"2015-01-13":5}
Я пробовал с и без фрагмента «var acctregs =» без изменений. Я получаю сообщение об ошибке в моей консоли браузера: «TypeError: this.data [0] is undefined morris.min.js: 6», и на данный момент я очень зациклен на том, почему он не работает. У jquery у меня 1.9.1.
Любая помощь в отношении того, что я могу пропустить, приветствуется. Спасибо.
EDIT 2015-01-19: Я переместил блок, содержащий информацию Morris.Line из index.php в файл footer.php, как до последнего тега, так и после него без изменений, он по-прежнему дает такую же ошибку , Еще раз спасибо за любые мысли/помощь.
Отлично. Одно: почему последняя дата не будет отображаться на вашем примере или в моем фактическом коде? – Jguy
Этикетки оси генерируются автоматически, чтобы попытаться покрыть разумное распространение данных. Представьте, что если вы набрали 100 баллов, вы все равно можете увидеть эти 5 ярлыков; его просто совпадение, что у вас есть 6 очков и 5 ярлыков, так что может показаться немного странным, но все работает как ожидается – chiliNUT
А, я вижу. Хорошо, спасибо за помощь и объяснение. Все работает так, как мне нужно. :) – Jguy