У меня есть этот код:
<script>
var area = new Morris.Area({
element: 'revenue-chart',
resize: true,
data: [
{y: '2011 Q1', item1: 2666, item2: 2666},
{y: '2011 Q2', item1: 2778, item2: 2294},
{y: '2011 Q3', item1: 4912, item2: 1969},
{y: '2011 Q4', item1: 3767, item2: 3597},
{y: '2012 Q1', item1: 6810, item2: 1914},
{y: '2012 Q2', item1: 5670, item2: 4293},
{y: '2012 Q3', item1: 4820, item2: 3795},
{y: '2012 Q4', item1: 15073, item2: 5967},
{y: '2013 Q1', item1: 10687, item2: 4460},
{y: '2013 Q2', item1: <?php echo file_get_contents("../adminpanel/pagecounters/totalviewsDecember.txt")?>, item2: 5713}
],
xkey: 'y',
ykeys: ['item1', 'item2'],
labels: ['Item 1', 'Item 2'],
lineColors: ['#a0d0e0', '#3c8dbc'],
hideHover: 'auto'
});
</script>
Но график не появляется, когда я обновляю страницу. (Также файл существует! Я проверил его.)
Как я могу это исправить?
Ваш код js правильный, здесь он с произвольным числом, замененным на php:
http://jsbin.com/muzucozivu/1/edit?html,js,output
Следовательно, есть только несколько возможных проблем:
Чтобы иметь все библиотеки, скопируйте их из моего кода jsbin (который был клонирован из кода jsbin, который я нашел на странице MorrisJS).
Чтобы проверить вторую возможность, откройте исходный код страницы и посмотрите, отсутствует ли остальная часть страницы или если PHP возвратил какое-то поддельное значение (если file_get_contents завершится неудачно, он вернет FALSE).
Последний должен только визуально проверить ваш код или открыть FireBug в Firefox и найти нужный элемент. Убедитесь, что оно написано правильно.
Вы также можете проверить другие ошибки JS в консоли.
Однако даже если файл существует, PHP все равно может потерпеть неудачу. Распространенным источником проблем, с PHP file_get_contents, является недопонимание того, где на самом деле находится «рабочий каталог», поэтому любые относительные пути в конечном итоге облажаются.
Используйте абсолютный путь к файлу, чтобы проверить это.
Других решений пока нет …