Отображение элементов из базы данных на диаграмме
Я хочу отобразить среднее значение результатов по каждой экзаменационной работе в виде диаграммы. Моя проблема в том, что когда я ловлю данные из своей базы данных, я сохраняю их в массиве, чтобы я не мог распечатать эти значения в виде списка массивов, например["a","b","c","d","e"]
или же[44,100,50.29,100]
чтобы использовать его в var xValues и var yValues, я также пытался использоватьforeach
, но это не работает. Пожалуйста помоги.
/ * Вот код JS * /
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<script>
var xValues =<?php foreach($examPapertitle as $title) {
echo $title;
}; ?>
var yValues =<?php foreach($avgcountresult as $average) {
echo $average;
}; ?>
var barColors = ["red", "green","blue","orange","brown"];
new Chart("myChart", {
type: "bar",
data: {
labels: xValues,
datasets: [{
backgroundColor: barColors,
data: yValues
}]
},
options: {
legend: {display: false},
title: {
display: true,
text: "Average of Results"
}
}
});
</script>
/ * Вот HTML-код * /
$examPapertitle=array();
$avgcountresult= array();
$fetchresult = mysqli_query($conn, "SELECT AVG(results.percentage), exam_paper.examTitle FROM results INNER JOIN exam_paper ON results.examPaperID = exam_paper.examPaperID GROUP by results.examPaperID ORDER by results.examPaperID");
while($rowresult= mysqli_fetch_assoc($fetchresult)){
$examPapertitle[] = $rowresult['examTitle'];
$avgcountresult[] = $rowresult['AVG(results.percentage)'];
}
<canvas id="myChart" style="width:100%;max-width:600px"></canvas>

1 ответ
Я считаю, что ваша проблема в том, что выvar xValues =
требуется ввод, скажем,[44,100,50.29,100]
и вместо этого вы повторяете4410050.29100
Значит тебе нужноecho
эти значения правильно, вы можете изменить свой блок php следующим образом:
var xValues =[<?php foreach($examPapertitle as $k=>$title) {
echo $title.($k>0?",":"");
}; ?>]
Или использовать гораздо более простые для чтения функции:
var xValues =[<?php echo implode($examPapertitle,",") ?>]
Это если ваши значения являются числами, вам нужно будет заключить эти значения в кавычки для строк, например:
var xValues =["<?php echo implode($examPapertitle,'","') ?>"]
Если вам нужна дополнительная информация о том, как работает implode, вы можете ознакомиться с его руководством здесь.
PS: полезный совет при смешивании php и javascript - всегда проверять вывод php (также известный как исходный файл браузера) через веб-инспектор. Это значительно упрощает выявление подобных проблем.
-
1`var xValues = [" <? php echo implode ($ excPapertitle, '","')?> "] 'работает, большое спасибо ash
Другие вопросы
- как добавить ссылки на липкую панель навигации1 ответ
Я попытался добавить фоновое изображение для своего веб-сайта django, и это вообще не сработало. Я использую этот ответ из stackoverflow, а также ссылку на вопрос stackoverflow. Но это не сработало. А также я переношу изменения в базу данных. добавить фоновое изображение как в методе cssbackground-i...
- Как заблокировать меню боковой панели, скрытое при обновлении страницы1 ответ
У меня есть меню боковой панели, которое было успешно скрыто и отображено. Когда меню боковой панели скрыто и я обновляю страницу или браузер, скрытое меню боковой панели вернется к своему первоначальному виду, а не в том положении, в котором оно было скрыто. Вопрос в том, как заблокировать, чтобы о...
- Если, то Заявления в распознавании речи HTML [закрыто]1 ответ
Закрыто. Этот вопрос требует подробностей отладки . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме Stack Overflow. Закрыт в прошлом месяце . Уточните этот вопрос Итак, я пытаюсь сделать голосового помощника html, и я борюсь с оп...
- Как добавить проверку ввода в React?2 ответ
У меня простая форма, в которойfirstName а такжеlastName . <label htmlFor="firstName">First Name: </label> <input type="text" className="form-control" id="firstName" name="firstName" value={basicDet...
- Фильтровать видео YouTube по категории1 ответ
В настоящее время я работаю над проектом, который отображает множество популярных видео YouTube из нескольких регионов. В настоящее время я работаю над функцией, которая позволяет пользователям фильтровать результаты по категориям и не имею честного представления о том, с чего начать реализацию. Вот...
- Передача значения параметра от кнопки Datatables к функции1 ответ
Я пытаюсь передать значение кнопки в таблице данных функции. Однако я просто получаю значение первой строки. Надеюсь, ты сможешь мне помочь. Мне просто нужно предупредить параметр, а обо всем остальном я позабочусь. вот код memberlist.php<?php header('Content-Type: application/json; Charset="...
- Удалить текст из строки Javascript1 ответ
Ниже приведено изображение ответа, который я получаю при отправке формы с неправильным адресом электронной почты. [IMG_OUR_ID=74.jpg] Я хочу удалить слово сообщение: & фигурные скобки вокруг строки из этого ответа. Я пробую следующее:$('#registerStatus').text(response.replace('message:', '')) Н...
- Остановить воспроизведение видео YouTube при закрытии CUSTOM модального окна1 ответ
Привет, классные Overflowers. Мне удалось реализовать красивый, простой модальный файл, который отображает видео на YouTube при нажатии на эскиз img. Моя проблема в том, что я не могу заставить видео останавливаться после закрытия модального окна. Я пробовал здесь много идей и скриптов, но многие из...
- Как мне работать с тегом html select с JS2 ответ
сначала я новичок в JS и попытался составить список с помощью тега select. Чтобы быть конкретным, я хотел сделать функцию, которая, если я выберу опцию «2014» из нескольких опций, тогда диаграмма будет показывать только один div с именем класса «2014», а иначе не будет отображаться. Но почему-то это...
- Не могут спам-боты декодировать закодированные адреса электронной почты?1 ответ
Я реализовал кодировщик электронной почты для своего сайта WordPress, плагин преобразует адрес примерно в это%6f%73%6f%72%69%6f%40%68%65%63%2e%63%6f и расшифровать его с помощью фрагмента кода JavaScript<span id="eeb-638789-855127"></span> <script type="text/javascript...

"Завидую тестировщикам: все хотят с ними дружить."