Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用HIGHCHART,PHP,使用文本文件中的正确值按颜色对图表栏进行排序_Php_Jquery_Highcharts - Fatal编程技术网

使用HIGHCHART,PHP,使用文本文件中的正确值按颜色对图表栏进行排序

使用HIGHCHART,PHP,使用文本文件中的正确值按颜色对图表栏进行排序,php,jquery,highcharts,Php,Jquery,Highcharts,假设我的PHP函数代码如下所示: function.php function PMTA_CHART($contentID, $chartName, $file, $order) { $cate = ''; $total = ''; $fail = ''; $chart = array(); $title = ""; $PercentBlue = 0; $PercentRed = 0; if (file_exists($file))

假设我的PHP函数代码如下所示:

function.php

 function PMTA_CHART($contentID, $chartName, $file, $order) {
    $cate = '';
    $total = '';
    $fail = '';
    $chart = array();
    $title = "";
    $PercentBlue = 0;
    $PercentRed = 0;
    if (file_exists($file)) {
        $files = fopen($file, 'r');
        while (!feof($files)) {
            $data = explode(";", fgets($files));
            if ($title == "") {
                $title = $data[0];
            }
            if (!empty($data[5])) {
                $cate = $data[5];
                $PercentBlue = ((int)$data[6] - (int)$data[7]);
                $PercentRed = (int)$data[7];
                if (!empty($order)) {
                    $PercentBlue = (100 - (int)$data[8]);
                    $PercentRed = (int)$data[8];
                    $chart[] = array($PercentBlue, $PercentRed, $cate);
                } else {
                    $PercentBlue = (100 - (int)$data[8]);
                    $PercentRed = (int)$data[8];
                    $chart[] = array($PercentRed, $PercentBlue, $cate);
                }
            }
        }
        arsort($chart);
        $cate = '';
        $PercentBlue = 0;
        $PercentRed = 0;
        if (!empty($order)) {
            foreach ($chart as $arr) {
                $cate.= ',' . "'$arr[2]'";
                $PercentBlue.= ',' . $arr[0];
                $PercentRed.= ',' . $arr[1];
            }
        } else {
            foreach ($chart as $arr) {
                $cate.= ',' . "'$arr[2]'";
                $PercentBlue.= ', ' . $arr[1];
                $PercentRed.= ', ' . $arr[0];
            }
        }
        fclose($files);
    } else {
        echo "No such file";
    }
?>       

    <?php echo $chartName ?> = new Highcharts.Chart({
    chart: {
        renderTo: '<?php echo $contentID ?>',
        type: 'column'
    },
    title: {
        text: '<?php echo $title; ?>'
    },
    xAxis: {
        categories: [<?php echo substr($cate, 1); ?>],
        labels: {
            rotation: 90,
            align: 'left'
        }
    },
    yAxis: {
        min: 0,
        title: {
            text: '% envoi'
        }
    },
    tooltip: {
        formatter: function() {
            return ''+
                this.series.name +': '+ this.y +' ('+ Math.round(this.percentage) +'%)';
        }
    },

    plotOptions: {
        column: {
            stacking: 'percent'
        }
    },
        series: [{
        name: 'Total mail succesful',
        data: [<?php echo substr($PercentBlue, 2); ?>]
    }, {
        name: 'Total mail fail',
        data: [<?php echo substr($PercentRed, 2); ?>]
    }]
});
<?php
include('include/function.php');
$pmta3_emetteur_file = '../stats_domain_emetteur.affinitead.net.'.date("Y-m-d").'.txt';
$pmta4_emetteur_file = '../stats_domain_emetteur.switchcall.com.'.date("Y-m-d").'.txt';
$pmta5_emetteur_file = '../stats_domain_emetteur.unitead.eu.'.date("Y-m-d").'.txt';
$order = isset($_POST['txt_order_blue'])?$_POST['txt_order_blue']:'';

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Chart</title>
<script type="text/javascript" src="js/jquery.min.js"></script> 
<script type="text/javascript">
$(function () {
var chart3, chart4, chart5;
$(document).ready(function() {
    <?php PMTA_CHART('PMTA3', 'chart3', $pmta3_emetteur_file, $order); ?>
    <?php PMTA_CHART('PMTA4', 'chart4', $pmta4_emetteur_file, $order); ?>
    <?php PMTA_CHART('PMTA5', 'chart5', $pmta5_emetteur_file, $order); ?>
});

});
</script>
</head>

<body>
<script src="js/highcharts.js"></script>
<script src="js/exporting.js"></script>
<form action="pmtaEmetteur.php" method="post">
<input type="submit" name="txt_order_red" id="txt_order_red" title="Order Red" value="Order Red"/>
<input type="submit" name="txt_order_blue" id="txt_order_blue" title="Order blue" value="Order blue"/>
</form>
<div id="PMTA3" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<div id="PMTA4" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
<div id="PMTA5" style="min-width: 400px; height: 400px; margin: 0 auto"></div>
</body>
</html>

我找不到解决方案,任何人都知道,请帮助我,谢谢。

将工具提示格式化程序更改为:

this.series.name +': '+ this.y +' ('+ Math.round(this.percentage * 10) +'%)';

将工具提示格式化程序更改为:

this.series.name +': '+ this.y +' ('+ Math.round(this.percentage * 10) +'%)';

解决方案是什么?什么问题?它对我有效。对于订单按钮,它有效,但对于数据,当我们将鼠标移到条形图上时,它应该显示:例如
邮件成功总数:900(90%)
邮件失败总数:100(10%)
。事实上,您看到的
邮件成功总数:90(90%)
邮件失败总数:10(10%)
条形图中并不是这样显示的。为什么函数名
PMTA\u图表
是大写的?解决方案是什么?什么问题?它对我有效。对于订单按钮,它有效,但对于数据,当我们将鼠标移到条形图上时,它应该显示:例如
邮件成功总数:900(90%)
邮件失败总数:100(10%)
。事实上,您看到的
邮件成功总数:90(90%)
邮件失败总数:10(10%)
条形图中不是这样显示的。为什么函数名
PMTA\u图表
是大写的?