Похоже, вы пытались копировать и вставлять разные коды вместе, не понимая этого по-настоящему:
adauga
добавляет входные значения в массив dt2
, но затем не расскажите таблицу для обновления. addData
, которая успешно обновит диаграмму, вызывается только один раз и с неверными переменными (Chart
- глобал Chart.js; kg
- undefined
, поскольку она локально ограничена функцией adauga
]). Я переписал ваш код во фрагмент ниже. См. Аннотации кода для получения дополнительной информации.
// assign the return value from Chart() to a variable which we use for updating.
let chart = new Chart(document.getElementById('line-chart'), {
type: 'line',
data: {
datasets: [{
data: [],
label: 'Asia',
borderColor: '#8e5ea2',
fill: false
}]
},
options: {
scales: {
xAxes: [{
// configure the x-axis as a time axis (this causes Chart.js to place the
// values in chronological order).
type: 'time',
time: {
unit: 'day'
}
}]
},
title: {
display: true,
text: 'World population per region (in millions)'
}
}
});
// bind to the click event of the button element.
document.getElementById('adauga').addEventListener('click', function() {
let dt = document.getElementById('dt').value,
kg = parseInt(document.getElementById('kg').value); // Chart.js requires a number not a string!
if (dt && (kg || kg == 0)) { // basic validity check.
// add the datapoint using the object format.
// see: https://www.chartjs.org/docs/latest/axes/cartesian/time.html#input-data
chart.data.datasets[0].data.push({
x: dt,
y: kg
});
chart.update();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.bundle.min.js"></script>
<input type="number" name="" value="" id="kg">
<input type="date" name="" value="" id="dt">
<button type="button" name="button" id="adauga">Adauga</button>
<canvas id="line-chart" width="200" height="100"></canvas>
В случае, если у кого-то еще есть проблемы с тем, чтобы его локальная среда разработки регистрировала ошибки, вот что исправило это для меня:
В окнах error_log
должен быть установлен полный путь к журналу для error_log()
на работу (error_log = c:\apache\php_errors.log
). Однако, если error_log = php_errors.log
без пути, php все равно сможет регистрировать ошибки запуска, такие как
PHP Startup: Unable to load dynamic library 'ext\php_mysqli.dll' - The specified module could not be found
Как сказал Брадим, проверьте, есть ли у вас права на запись в каталог, где находится журнал ошибок php для пользователя apache. Если вы создали файл журнала с письменными разрешениями, этого недостаточно, у каталога также должны быть они.
В моем случае на сервере разработки CentOS после полного yum update
разрешение на / var / log / http было изменено на 700, а пользователь на «root», поэтому пользователь « apache 'не смог войти или написать в него. Он все еще мог записать в существующий файл /var/log/httpd/error.log , но не смог создать новый файл, так как я использую файлы журнала с суффиксом даты. Выполнение команды
chown apache /var/log/httpd
решило проблему.
Если установлена директива error_log, файл будет использоваться для записи ошибок php, если он не установлен, ошибки будут записываться в журнал Apache. Взгляните на http://us3.php.net/manual/en/errorfunc.configuration.php#ini.error-log .
Файл error_log и каталог, в котором он находится, должен быть доступен для записи пользователю, под которым работает Apache. Если файл не создается, возможно, это связано с проблемой разрешений.
Я не знаю наверняка, почему Apache будет зависать от вас, но я предполагаю, что это какая-то проблема с разрешениями.
Проблема, с которой я столкнулся, заключалась в том, что журнал ошибок, который я обозначил, был защищен от записи. Все мои настройки .htaccess были правильными, PHP просто не мог записать в журнал ошибок, потому что у него не было разрешений. Это исправило это для меня:
chmod 777 watermellon-app-errors.log
Очевидно, вы захотите изменить .log на любой файл, который вы используете для журнала.
Убедитесь и также установите
display_errors = On
И попробуйте
error_reporting(E_ALL);
в вашем коде. Часто я включаю сценарий конфигурации ошибок времени выполнения, который включает ошибки, когда я разрабатываю, и отключает их, когда я не работаю. Выглядит это примерно так:
if ($debugmode == 'on') {
error_reporting(E_ALL);
ini_set("display_errors", 1);
}else {
error_reporting(0);
ini_set("display_errors", 0);
}
Надеюсь, это поможет.
** Я не правильно прочитал, вы хотите регистрировать ошибки вместо отображения, в этом случае ответ Хаоса - это то, что вы ищете.
I don't understand why, but the error log is now working. Here is what I did. I gave up and commented back out the error_log directive and closed the ini file. I ran the script with the parse error to see of Apache would still crash and I got the PHP error in the log file. This is freaky because the ini file no longer has error_log enabled and my script is not using ini_set().
Does anyone have an explanation for this madness? Also, Apache no longer crashes.
Вам также необходимо установить log_errors = On
в php.ini.