Найдите общую сумму, в которую входит каждая транзакция (диаграмма Google)
У меня есть диаграмма, в которой мне нужно подсчитать сумму, которую я зарабатываю с течением времени. На этом графике у меня есть сумма (красная линия). Моя цель - вычислить общую сумму каждой входящей транзакции. Мой текущий код не работает должным образом, потому что, когда время 18:26:23, это 1000 сумма, когда 18:26:24 , это все еще 1000 . .. Должно быть 2000 . Со временем он должен решить эту проблему. Я предоставил свои коды ниже и снимок экрана с моей текущей системой и моей целью. Заранее спасибо.
Просмотры :
<div class="col-md-12">
<!-- LINE CHART -->
<div class="card card">
<div class="card-header">
<h3 class="card-title">Stats Per Day</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" style="width:30%;">
<i class="fas fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
<div class="chart">
<div id="wholechart" style="min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;"></div>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
Аякс :
function sampleeesasw(){
$.ajax({
type: 'post',
url: '<?=site_url('report/datas')?>',
dataType:'json',
success: function(result) {
google.charts.load('current', {'packages':['corechart']});
google.charts.setOnLoadCallback(function(){drawChart(result);});
function drawChart(result) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'req');
data.addColumn('number', 'total');
data.addColumn('number', 'amount');
var dataArray =[];
$.each(result,function(i,obj){
dataArray.push([obj.req,parseInt(obj.total),parseInt(obj.amount)]);
});
data.addRows(dataArray );
var options = {
seriesType: "line",
};
var chart = new google.visualization.ComboChart(document.getElementById('wholechart')).
// Line,Bar,Area,Clomun,pie
draw(data, {curveType: "function",
vAxes: {0: {logScale: false},
1: {logScale: false, maxValue: 2}},
series:{
0:{targetAxisIndex:0},
1:{targetAxisIndex:1},
2:{targetAxisIndex:1}}}
);
}
}
});
}
setInterval(function(){
sampleeesasw()
},1000);
Контроллер :
public function datas(){
$data= $this->reports->wholedatachart();
foreach($data as $row){
$data['req']=$row['req'];
$data['amount']=$row['amount'];
$data['total']=$row['total'];
}
echo json_encode($data);
}
Модель:
function wholedatachart(){
$query=$this->db->query("SELECT timeProcess as 'req', transID as 'total', amount as 'amount' FROM tbl_transaction");
return $query->result_array();
}
-
0Можете ли вы также опубликовать свою структуру данных Daffa Akbari
-
0prnt.sc/13twypr Вы это имели в виду? Мне жаль. Я новичок. Спасибо. Rain Ie
-
0поэтому вы хотите, чтобы он увеличивался и показывал общую сумму для каждых новых данных (например, 18:26:23 покажет 1000, а в 18:26:24 покажет 2000) или всего сегодня?, Daffa Akbari
-
0например. 18:26:23 покажет 1000, а в 18:26:24 покажет 2000) <<< этот Rain Ie
-
0Привет, транзакции уже хранятся в базе данных или они одновременно вставляются в другую часть кода, а через интервал вы их загружаете? Swati
-
0Здравствуйте, он уже хранится в БД. Rain Ie
-
0Итак, вы просто загружаете все записи и добавляете их в диаграмму? Зачем тогда нужен интервал? Swati
-
0Моя проблема, я получаю их с интервалом, например, для 1 мин. = Все транзакции + еще 1 мин. = Общие транзакции и так далее ... Я сделал ошибку, это было для меня плохо. Rain Ie

2 ответа
Вы можете выполнить расчетную часть внутри своегоdrawChart
функция. Внутри этой функции вы можете просто получить общее значение суммы, затем сохранить его в какой-либо переменной и передать в свойdataArray.push(..)
.
Демо-код :
//suppose data look like this..
var result = [{
"req": "1",
"amount": 2000,
"total": 1000
},{
"req": "2",
"amount": 1000,
"total": 1000
},{
"req": "3",
"amount": 1000,
"total": 1000
}]
function sampleeesasw() {
/*$.ajax({
type: 'post',
url: '',
dataType: 'json',
success: function(result) {*/
google.charts.load('current', {
'packages': ['corechart']
});
google.charts.setOnLoadCallback(function() {
drawChart(result);
});
function drawChart(result) {
var data = new google.visualization.DataTable();
data.addColumn('string', 'req');
data.addColumn('number', 'total');
data.addColumn('number', 'amount');
var dataArray = [];
var total=0 //intialze..
$.each(result, function(i, obj) {
total +=parseInt(obj.amount)//add on each iteration
dataArray.push([obj.req, parseInt(obj.total), parseInt(total)]); //add value here ..
});
data.addRows(dataArray);
var options = {
seriesType: "line",
};
var chart = new google.visualization.ComboChart(document.getElementById('wholechart')).draw(data, {
curveType: "function",
vAxes: {
0: {
logScale: false
},
1: {
logScale: false,
maxValue: 2
}
},
series: {
0: {
targetAxisIndex: 0
},
1: {
targetAxisIndex: 1
},
2: {
targetAxisIndex: 1
}
}
});
}
/* }
});*/
}
setInterval(function() {
sampleeesasw()
}, 1000);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
<div class="col-md-12">
<!-- LINE CHART -->
<div class="card card">
<div class="card-header">
<h3 class="card-title">Stats Per Day</h3>
<div class="card-tools">
<button type="button" class="btn btn-tool" data-card-widget="collapse" style="width:30%;">
<i class="fas fa-minus"></i>
</button>
</div>
</div>
<div class="card-body">
<div class="chart">
<div id="wholechart" style="min-height: 250px; height: 250px; max-height: 250px; max-width: 100%;"></div>
</div>
</div>
<!-- /.card-body -->
</div>
</div>
-
1Привет, Свати. обязательно попробую это завтра утром. (Потому что меня сейчас нет дома) Надеюсь, вы дождетесь моего ответа. Спасибо, и я действительно оценил это.
-
0Привет, Свати. Я тоже сделал ваше предложение. Единственное, что происходит, это то, что он учитывает каждую транзакцию, а не саму общую сумму. Пожалуйста, посмотрите этот снимок экрана: prnt.sc/1402byz
Я думаю, вы можете попробовать это, вам нужно увеличить количество данных, вы можете использовать временную переменную и увеличить всю сумму.
Я отредактировал ответ извините мой плохой.
смени свой контроллер на
public function datas(){
$data= $this->reports->wholedatachart();
$tempAmount = 0;
foreach($data as $row){
$tempAmount = $tempAmount + $row['amount'];
$output[]=array(
'req' => $timeline['time'],
'amount' => $tempAmount,
'amount' => $row['amount'],
);
}
echo json_encode($output);
}
если вы хотите добавить сумму, вы можете сделать то же самое
-
0Здравствуйте, я попробовал, и ничего не изменилось. Это все тот же prnt.sc/13u1o52 << Пожалуйста, посмотрите это. Спасибо
-
0Вот что я сделал >>> prnt.sc/13u5on8
Другие вопросы
- Функция клавиатуры работает только один раз для первой буквы ввода2 ответ
У меня есть текстовый ввод, где пользователь вводит желаемое имя страницы<input type='text' id='pageName' name='PageName' class='form-control pageName'> Я пытаюсь использовать функцию keyup для запуска Ajax, чтобы проверить, существует ли страница, однако при вводе чего-то вродеindex Ajax от...
- ajax дважды загружает данные из базы данных с помощью laravel php1 ответ
привет, я пытаюсь загрузить данные из базы данных с помощью ajax. но данные загружаются дважды на страницу html.<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $('button').click(function(){ $.ajax({ ...
- отображать другие входы на основе значения другого входа с помощью laravel, ajax1 ответ
Я новичок в laravel, и я пытаюсь создать форму и отправить ее в базу данных. Мне удалось сохранить данные в базе данных, используя следующий код. Мой клинок: <form id="castingform" method="post" action="castingss" enctype="multipart/form-data"> ...
- Передача значения параметра от кнопки Datatables к функции1 ответ
Я пытаюсь передать значение кнопки в таблице данных функции. Однако я просто получаю значение первой строки. Надеюсь, ты сможешь мне помочь. Мне просто нужно предупредить параметр, а обо всем остальном я позабочусь. вот код memberlist.php<?php header('Content-Type: application/json; Charset="...
- Снимок WebRTC с веб-камеры и сохранение его на сервере в PHP: iPhone Safari вылетает при разрешении выше 20961 ответ
У меня есть РАБОЧИЙ код, чтобы сделать снимок с веб-камеры и сохранить его на PHP через ajax ... но когда я пытаюсь использовать разрешение выше 2000, сафари-мобильный на iPhone вылетает, почему и как это исправить? здесь, если я сделаюgetUserMedia({ video:{width: { ideal: 2096 => все в порядке Н...
- Можно ли динамически создать ссылку и щелкнуть по ней с помощью Selenium?1 ответ
Скажем, есть веб-сайт, который динамически загружает данные с помощью вызовов Ajax. Данные занимают 200 страниц с примерно 50 строками на странице. Пагинация создается внизу, что похоже на<div class="pagination"> <a class="paginate" id="previous">Previou...
- Диаграмма C # удалить числа и добавить диапазон1 ответ
Мои вопросы: Как мне удалить эти цифры, которые я отметил на скриншоте https://prnt.sc/116tvvz ? Как указать диапазон чисел на графике? Например, вот скриншот https://prnt.sc/116txqs . Он показывает числа в диапазоне от 50 000 до 60 000, но график начинается с нуля до 60 000....
- Как отображать данные SQL в HTML в виде таблицы с помощью AJAX JQuery?1 ответ
У меня есть некоторые данные, хранящиеся в файле SQL, и я хочу отображать данные в HTML в виде таблицы с AJAX JQuery. Когда я их проверяю, данные получаются нормально, но я не понимаю, как я могу отображать данные в HTML. Для меня все является новой концепцией, и мне трудно найти правильный способ с...
- Отправить значение ползунка jQuery с помощью AJAX1 ответ
Я отправляю две переменные jQuery (urlid а такжеbonus ) с AJAX в серверный скрипт. Это работает, как ожидалось. Теперь я хочу добавить слайдер jQuery (#slider-vertical ) к сценарию. Фактическое выбранное значение ползунка должно быть отправлено с помощью AJAX. Я пробовал вот так, но значение ползунк...

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