繁体   English   中英

在js脚本中使用php“loop if” - 谷歌图表

[英]Use php "loop if" in js script - google chart

我有一个 php 网站,我需要添加一个谷歌图表 - 所以这是我使用 js 的第一步。 我有以下问题:

我需要更改 php 代码的原始函数 drawVisualization()

  1. 我用相同的输入(php)创建了$cosafter
  2. 用 php echo (js) 制作var coss
  3. 将新的 coss id 放入函数 (js)

你能检查一下并建议我哪里出错了吗?

原始代码:

    <html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawVisualization);

      function drawVisualization() {
        // Some raw data (not necessarily accurate)
        var data = google.visualization.arrayToDataTable([
          ['data', 'zysk/strata', 'Average'],
          ['2019-09-05',9.32,9.32],
          ['2019-09-06',10.88,10.1],
          ['2019-11-29',-7.86,4.1133333333333],
          ['2019-11-29',-43.61,-7.8175],
          ['2019-11-29',44,2.546],
          ['2019-11-29',4.71,2.9066666666667],
        ]);

        var options = {
          title : 'Trend ostatnich 10 transakcji',
          vAxis: {title: 'Zysk/Strata'},
          hAxis: {title: 'Data'},
          seriesType: 'bars',
          series: {1: {type: 'line', color: 'black'}}        };

        var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="chart_div" style="width: 900px; height: 500px;"></div>
  </body>
</html>

更改后我的代码:

    <?php
    require("zamkniete.php");

    $cos='';

    if ($lp22 >= 10){$ost10=$lp22-9;}else{$ost10=0;}   //show only last 10 prices

    for ($x=$ost10; $x <= $lp22; $x++){
    if($x==0){$to=$zyskpop[$x];}else{$to=($zyskpop[$x]/($x+1));}
    $cosbefore.= "['".$datatab[$x]."',".$zysktab[$x].",".$to."],</br>";
    };

    $cosafter = "[['data', 'zysk/strata', 'Average'],</br>".$cosbefore."]";

//echo $cosafter;
/*
    FYI how $cosafter looks like:
     [['data', 'zysk/strata', 'Average'],
     ['2019-09-05',9.32,9.32],
     ['2019-09-06',10.88,10.1],
     ['2019-11-29',-7.86,4.1133333333333],
     ['2019-11-29',-43.61,-7.8175],
     ['2019-11-29',44,2.546],
     ['2019-11-29',4.71,2.9066666666667],
     ]
*/


    ?>
    <html>
      <head>
        <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
        <script type="text/javascript">

          google.charts.load('current', {'packages':['corechart']});
          google.charts.setOnLoadCallback(drawVisualization);

          var coss = "<?php echo $cosafter; ?>";

          function drawVisualization() {
            // Some raw data (not necessarily accurate)

            var data = google.visualization.arrayToDataTable(coss);

            var options = {
              title : 'Trend ostatnich 10 transakcji',
              vAxis: {title: 'Zysk/Strata'},
              hAxis: {title: 'Data'},
              seriesType: 'bars',
              series: {1: {type: 'line', color: 'black'}}        };

            var chart = new google.visualization.ComboChart(document.getElementById('chart_div'));
            chart.draw(data, options);
          }
        </script>
      </head>
      <body>
        <div id="chart_div" style="width: 900px; height: 500px;"></div>
      </body>
    </html>

主要代码:

<?php

require("zamkniete.php");

$cos='';
$data=array();

//if ($lp22 >= 10){$ost10=$lp22-9;}else{$ost10=0;}
//for ($x=$ost10; $x <= $lp22; $x++){
for ($x=0; $x <= $lp22; $x++){
if($x==0){$to=$zyskpop[$x];}else{$to=($zyskpop[$x]/($x+1));}

$dataa=date("d-m", strtotime("$datatab[$x]"));
$data[] =
    array(
        'data' => $dataa,
        'zysk/strata' => $zysktab[$x],
        'średnia' => $to,
    );

};


//var_dump($data);

# our converstion function given above.
function convertDataToChartForm($data)
{
    $newData = array();
    $firstLine = true;

    foreach ($data as $dataRow)
    {
        if ($firstLine)
        {
            $newData[] = array_keys($dataRow);
            $firstLine = false;
        }

        $newData[] = array_values($dataRow);
    }

    return $newData;
}
// <div id="chart_div2" style="width: 900px; height: 500px;"></div>
?>


<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {'packages':['corechart']});
      google.charts.setOnLoadCallback(drawVisualization);

      function drawVisualization() {
        // Some raw data (not necessarily accurate)
        var data = google.visualization.arrayToDataTable((<?= json_encode(convertDataToChartForm($data)); ?>));

        var options = {
          title : 'zysk per transakcja',
          vAxis: {title: 'zysk/strata [PLN]'},
          hAxis: {title: 'data transakcji'},
          seriesType: 'bars',
          series: {
0: {color: '#F1E0B0'},
1: {type: 'line', color: '#ECBE7A'}}        };

        var chart = new google.visualization.ComboChart(document.getElementById('chart_div2'));
        chart.draw(data, options);
      }
    </script>
  </head>
 
</html>

如何显示图表

<div class="rwd-table">
<center><?php require("wykrestrend_dziala.php"); ?>  <div id="chart_div2" style="width: 900px; height: 500px;"></div></center>
</div>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM