Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/418.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
Javascript 如何在要拉取的系列数据中包含字符串以进行工具提示点格式设置?_Javascript_Php_Highcharts - Fatal编程技术网

Javascript 如何在要拉取的系列数据中包含字符串以进行工具提示点格式设置?

Javascript 如何在要拉取的系列数据中包含字符串以进行工具提示点格式设置?,javascript,php,highcharts,Javascript,Php,Highcharts,这里是初学者,我正在尝试构建一个柱形图,在x轴上显示用户名,在y轴上显示测试分数。在工具提示框中,我试图使它显示考试分数和考试日期。我使用PHP填充基于oracle sql数据库的图形,因此我将PHP混合到Highcharts的javascript中 我不确定我想做的是否真的可行,但我试图从sql数据库中获取测试日期,并将其插入到序列数据中,这样当你将鼠标悬停在列上时,我可以将其调出到工具提示框中,它会告诉你用户、分数和他们参加考试的日期 这是我正在尝试的,但它不起作用,因为我猜测序列数据中有一

这里是初学者,我正在尝试构建一个柱形图,在x轴上显示用户名,在y轴上显示测试分数。在工具提示框中,我试图使它显示考试分数和考试日期。我使用PHP填充基于oracle sql数据库的图形,因此我将PHP混合到Highcharts的javascript中

我不确定我想做的是否真的可行,但我试图从sql数据库中获取测试日期,并将其插入到序列数据中,这样当你将鼠标悬停在列上时,我可以将其调出到工具提示框中,它会告诉你用户、分数和他们参加考试的日期

这是我正在尝试的,但它不起作用,因为我猜测序列数据中有一些字符串而不是数字。你能提供的任何帮助都会很棒!谢谢


你想做的事肯定是可能的。下面是一个这样工作的例子:

然而,在本例中,我取出PHP并用一些硬编码数据替换它

   data: [{y:7, color: '#00A6CF', testdate: '2014-12-12'},{y:2, color:"#FF0000", testdate: '2015-01-03'}, {y:3,color:"#00FF00", testdate:'2014-10-19'}]
所以我认为问题在于,你把PHP和javascript混合在一起,得到了一些奇怪的结果。如果没有其他原因导致读取和调试非常非常困难,那么像您这样将内联PHP包含到javascript代码中通常是一个非常糟糕的主意

我突然想到几件事:

您根本不应该为此使用PHP,但如果必须这样做,则不应该像现在这样使用DoWhile循环。您将do/while与incrementor一起使用,而不是for循环:

$i = 0;
    do {
        echo "'";
        echo $userinfos[$i]['username'];
        echo "',";
        $i++;
    } while ($i<=$count);
这将为您提供一个JSON对象,您可以非常轻松地阅读和使用它。与此类似的一些未经测试的东西,如果不稍加修改,可能无法工作:

$.getJSON('/generate.php', function(data) {

   $('#graph1').highcharts({
        credits: { enabled:false},
        chart: {
            type: 'column'
        },
        title: {
            text: 'Most Recent Test Scores'
        },
        subtitle: {
            text: 'Drag slider to change the chart width'
        },
        xAxis: {
             categories: data.categories
        yAxis: {    
            plotLines: [{
                color: 'red',
                dashStyle: 'shortdash',
                value: 85,
                width: 1,
            }],     
            floor: 0,
            ceiling: 100,
            title: {
                text: 'Test Score (%)'
            }
        },
        series: [{
            showInLegend: false,
            name: 'Test Score',
            data: data.seriesdata,
        tooltip: {
            shared: true,
            useHTML: true,
            pointFormat: '<tr><td style="color: {series.color}">Score: </td>' +
                '<td style="text-align: right">{point.y} %</td></tr><tr><br><td>Date: </td>' +
                '<td style="text-align: right">{point.testdate}</td></tr>'
        }
    });
});

谢谢,我的问题不是用引号括住字符串!
$output = array();

foreach ($userinfos as $user) {
  $output['categories'][] = $user['username'];
  if ($user['score'] >= 85) {
    $color = "#00A6CF";
  } else {
    $color = "#FF0000";
  }
  $user['color'] = $color;
  $output['seriesdata'][] = $user;
}

echo json_encode($output);
$.getJSON('/generate.php', function(data) {

   $('#graph1').highcharts({
        credits: { enabled:false},
        chart: {
            type: 'column'
        },
        title: {
            text: 'Most Recent Test Scores'
        },
        subtitle: {
            text: 'Drag slider to change the chart width'
        },
        xAxis: {
             categories: data.categories
        yAxis: {    
            plotLines: [{
                color: 'red',
                dashStyle: 'shortdash',
                value: 85,
                width: 1,
            }],     
            floor: 0,
            ceiling: 100,
            title: {
                text: 'Test Score (%)'
            }
        },
        series: [{
            showInLegend: false,
            name: 'Test Score',
            data: data.seriesdata,
        tooltip: {
            shared: true,
            useHTML: true,
            pointFormat: '<tr><td style="color: {series.color}">Score: </td>' +
                '<td style="text-align: right">{point.y} %</td></tr><tr><br><td>Date: </td>' +
                '<td style="text-align: right">{point.testdate}</td></tr>'
        }
    });
});