0

我有一个执行查询的 .php 文件,此查询根据结果添加文本字段,例如:

$query = mysqli_query($mysqli, "SELECT YEAR,PERIOD FROM users");
$num_users = mysqli_num_rows($query);

for($i=1; $i<=$num_users; $i++) {
   $row = mysqli_fetch_array($query);

   echo "<input type='text' id='year$i' name='year$i' value='".$row['YEAR']."'>";
   echo "<input type='text' id='period$i' name='period$i' value='".$row['PERIOD ']."'>";
}
echo "<input type='text' id='count' name='count' value='$num_users'>"

所以这将输出 x 个输入,因此它可能是 1 到 40 个包含年份和期间的输入,然后我使用以下内容捕获此字段的值:

count = parseInt(document.getElementById('count').value);
for(i=1;i<=count;i++) {
    var custom = "year" + i;
    window[custom] = parseFloat(document.getElementById('year' + i).value);
    var custom = "period" + i;
    window[custom] = parseFloat(document.getElementById('period' + i).value);
 }

直到此时一切正常,我已经测试了上面的代码,并且所有输入值都保存在正确的变量中。

考虑到数据的数量会发生变化,我怎么能有一个系列来显示这些年龄?

我在想这样的事情:

series: [
  for(i=1;i<=count;i++) {
     {
        name: year + i,
        data: [period + i]
     }
  }
]

请帮我!!谢谢!!

4

3 回答 3

1

series必须是一个数组。如果您想使用填充该数组的函数,您可以创建一个像这样的自执行函数(更新后的演示,它将输出到文本区域):

series: (function(year, period, count) {
  var data = [];
  for(i=1;i<=count;i++) {
    data.push(
      {
        name: year + i,
        data: [period + i]
      }
    );
  }
  return data;
})(year, period, count)

这假设您有外部值yearperiod并且count

于 2013-05-02T20:23:27.063 回答
0

感谢所有人,但我找到了一个更简单的解决方案:

var year = new Array();

for(i=1;i<=count;i++) {
  var custom = "year" + i;
  window[custom] = parseFloat(document.getElementById('year' + i).value);
  year.push(document.getElementById('year' + i).value);
}
// Highcharts
series: [{
   name: 'Pacientes',
   data: year
}
于 2013-05-03T19:32:45.207 回答
0

这很简单。称呼

添加系列()

在计数的每次迭代中并将其推入高图表。

更多信息 http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/members/chart-addseries/

$(function () { $('#container').highcharts({ xAxis: { 类别:['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul' , 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] }, series: [{ data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4] }] });

// the button handler
$('#button').click(function() {
    var chart = $('#container').highcharts();
    if (chart.series.length == 1) {
        chart.addSeries({
            data: [194.1, 95.6, 54.4, 29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4]
        });
    }
}); });
于 2013-05-02T20:33:01.117 回答