Панель Морриса не работает с динамическими значениями с использованием json - PullRequest
0 голосов
/ 13 ноября 2018

Я использую бар Морриса, получая динамические значения из json

Это код Морриса JS

$(function() { 
  var str='';
  jQuery.ajax({
  type: "GET",
  url: "today_attendance.php",
  success: function(data)
   {
    //alert(data);
    //console.log(data);
    //uploaddata(data);
    str=data;
   }
});

Morris.Bar({
    element: 'morris-bar',
    data: str,

    //data: 
    // [{x:'B1',y:14,z:0},{x:'B2',y:27,z:5},{x:'B3',y:38,z:100}, 
    // {x:'B4',y:77,z:73},{x:'B5',y:71,z:71},{x:'B6',y:0,z:57}, 
    // {x:'B7',y:0,z:89},{x:'B8',y:71,z:59},{x:'B9',y:0,z:16}, 
    // {x:'B10',y:5,z:63},{x:'B11',y:0,z:0}],
    xkey: 'x',
    ykeys: ['y', 'z'],
    labels: ['A', 'B']
});
});

Вот код php, где ajax вызывает страницу

<?php
  require_once("../../assets/db_connect.php");

  //$Today = date('Y-m-d 00:00:00');
     $Today = '2018-08-17 00:00:00';
  //Get Current Session
     $Res_Sess = mysql_query("SELECT sessionid from tbl_session where status=1 ORDER BY sessionid desc limit 1");
     $Row_Sess = mysql_fetch_array($Res_Sess); $Session = $Row_Sess[0];
     $Res_Bat = mysql_query("SELECT batchid,batchname,code FROM tbl_batch where status=1 and batchid!=12 ORDER BY batchid asc");
     $i=1; $Str = array();
     while($Row_Bat = mysql_fetch_array($Res_Bat)){
        $Batch = $Row_Bat['batchid'];  $Bat_Code = $Row_Bat['code'];
       //Get Modules
       $Res_Mod = mysql_query("SELECT distinct module_id from tbl_attendance where batchid = '$Batch' and sessionid = '$Session' LIMIT 2"); 
        $index =1; $Attendance='';
     if(mysql_num_rows($Res_Mod)>0){
        While($Row_Mod = mysql_fetch_array($Res_Mod)){
        $Mod_ID = $Row_Mod[0];
        //Get Total 
         $qatt1 = mysql_query("select count(id) from tbl_attendance where module_id = '$Mod_ID' and batchid = '$Batch' and sessionid = '$Session' and date ='$Today'");
        $qatt2 = mysql_query("select count(id) from tbl_attendance where module_id = '$Mod_ID' and batchid = '$Batch' and sessionid = '$Session' and attend = 1 and date ='$Today'");
        $qatt3 = mysql_query("select count(id) from tbl_attendance where module_id = '$Mod_ID' and batchid = '$Batch' and sessionid = '$Session' and attend = 0 and date ='$Today'");
        $qatt4 = mysql_query("select count(id) from tbl_attendance where module_id = '$Mod_ID' and batchid = '$Batch' and sessionid = '$Session' and attend = 2 and date ='$Today'");
        $Row_T = mysql_fetch_array($qatt1);
        $totalatt = $Row_T[0];
        $Row_P = mysql_fetch_array($qatt2); $tpresent = $Row_P[0];; 
        $Row_A = mysql_fetch_array($qatt3); $tabsent = $Row_A[0];; 
        $Row_L = mysql_fetch_array($qatt4); $tleave = $Row_L[0];; 
        $tattp = ($tpresent + $tleave) / $totalatt * 100;
        $Attendance[$index] = round($tattp,0);  
        $index++;
    }
} else {
            $Attendance[1] = 0; 
            $Attendance[2] = 0; 
        }   
$string = array(
x => $Bat_Code,
y => $Attendance[1],
z => $Attendance[2]
 );
 $Str[] = $string;
$i++;
  }
 echo json_encode($Str);
 ?>

Проблема в том, что после успешной работы ajax, когда предупреждение data , тогда значение показывается как

[{х: 'В1', у: 14, г: 0}, {х: 'В2', у: 27, г: 5}, {х: 'В3', у: 38, г: 100 }, {х: 'B4', у: 77, г: 73}, {х: 'B5', у: 71, г: 71}, {х: 'В6', у: 0, г: 57}, {х: 'В7', у: 0, г: 89}, {х: 'В8', у: 71, г: 59}, {х: 'В9', у: 0, г: 16}, {х : 'В10', у: 5, г: 63}, {х: 'В11', у: 0, г: 0}] * * 1 014

Как передать моррис бар в данные? Когда я даю переменную str в данных столбца Морриса, столбец Морриса не отображается.

1 Ответ

0 голосов
/ 13 ноября 2018

Правильный ответ, как этот способ

$.ajax({
dataType: 'JSON',
type: 'POST',
url: "today_attendance.php",
success: function(response)
{
    Morris.Bar({
    element: 'morris-bar',
    data: response,
    xkey: 'x',
    ykeys: ['y', 'z'],
    labels: ['A', 'B']
}); 
 }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...