【问题标题】:Draw 2 lines in Highcharts. JSON malformed?在 Highcharts 中画两条线。 JSON格式错误?
【发布时间】:2023-03-19 03:49:01
【问题描述】:

我正在尝试使用 Highcharts 在图表上绘制 2 条线。 PHP服务器端文件是:

require_once('Connections/conexion.php'); 
$sesionUser = $_SESSION['MM_Username'];
$sesionIdGrupo = $_GET['idGrupo'];
$sesionFechaActual = $_GET['fechaActual'];
$sesionFechaActualArreglo = date_format(new DateTime($sesionFechaActual),"Y-m-d");

$query_RecordsetTabla2 = "SELECT idDispositivo FROM dispositivos WHERE idUsuario = (SELECT idUsuario FROM usuarios WHERE userName = '$sesionUser') AND idGrupo = '$sesionIdGrupo'";
$RecordsetTabla2 = mysql_query($query_RecordsetTabla2, $conexion) or die(mysql_error());
$totalRows_RecordsetTabla2 = mysql_num_rows($RecordsetTabla2); 

while ($row_RecordsetTabla2 = mysql_fetch_assoc($RecordsetTabla2))
{
    $idDispositivo = $row_RecordsetTabla2['idDispositivo']; 

    $query_RecordsetTabla3 = "SELECT * FROM registros WHERE idUsuario = (SELECT idUsuario FROM usuarios WHERE userName = '$sesionUser') AND idDispositivo = '$idDispositivo' AND fecha = '$sesionFechaActualArreglo'";
    $RecordsetTabla3 = mysql_query($query_RecordsetTabla3, $conexion) or die(mysql_error());
    $totalRows_RecordsetTabla3 = mysql_num_rows($RecordsetTabla3);
    if ($totalRows_RecordsetTabla3 != 0) {  ///para ver si tienen resultados la consulta
    unset($items);      

        while ($row_RecordsetTabla3 = mysql_fetch_assoc($RecordsetTabla3))
        {
        $fecha = $row_RecordsetTabla3['fecha'];
            $hora = $row_RecordsetTabla3['hora'];
            $estado = $row_RecordsetTabla3['estado']; 
        $arregloFecha = date_format(new DateTime($fecha),"Y-m-d");
            $arregloHora = date_format(new DateTime($hora),"H:i");
        $arregloHora2 = strtotime($arregloHora) * 1000;
        $arr = array($arregloHora2, floatval($estado));
        $items[]  =  $arr;
        }
        $items2  = array ( 'data' => $items , 'name' => $idDispositivo );
        echo json_encode($items2);
    }/////del IF
}
mysql_free_result($RecordsetTabla);
mysql_free_result($RecordsetTabla2);
mysql_free_result($RecordsetTabla3);
?>

... 并返回 JSON 字符串:

{"data":[[1398416400000,1],[1398419100000,1]],"name":"2"}{"data":[[1398418200000,1],[1398419100000,1],[1398420000000,0]],"name":"16"}

答案文件转到 javascrpt 客户端:

$.get("mostrarStatsGrupo.php", datos, function(data){
var titulo = 'Red '+ memoria.nombreGrupoSeleccionado +' a día '+ memoria.fechaActual
chart = new Highcharts.Chart({
    chart: {
        renderTo: 'divStatsGrupo',
        plotBackgroundColor: null,
        plotBorderWidth: null,
        plotShadow: false
    },
    title: {
        text: titulo
    },
    tooltip: {
        enabled: false,        
    },
    xAxis: {

        type: 'datetime',
        dateTimeLabelFormats : {
            hour: '%H:%M',
            labels: {
                style: {
                    width: '200px','min-width': '100px'
                },
            useHTML : true
            }
        }   
    },
    yAxis: {
        categories: [ 'APAGADO', 'ACTIVO', 'ALARMA'],   
        title: {
            text: 'ESTADO'
        },
        min: 0
    },
    series : data   <-----is the problem?¿?¿        
});
}); ///cierro get
}   ///cierro function

Highcharts 不会像希望那样画两条线。任何开明的灵魂都可以利他的方式吗?非常感谢你,没有这个社区就不行。谢谢!

编辑:我无法上传带有 BD 表的图片,抱歉! ...我需要至少 10 个声望! ...关联... http://i57.tinypic.com/2efj43n.jpg

编辑 2: 感谢 Jerko by response... ...查看正确的代码/响应!

【问题讨论】:

  • 几件事,你有什么错误吗?你在哪里调用这个 php 文件?如果您在 firefox 中有 firebug,您能看到正在建立的 ajax 连接吗? ajax 请求是否返回任何错误?
  • 嗨,战斗! ...没有返回错误... PHP文件响应好的...但是javascript文件上的highchart没有绘制任何东西... :(
  • 您能否仔细检查您是否包含所有正确的 JavaScript 和 CSS 文件?如果可能,请发布演示链接
  • 你的 json 无效
  • 似乎。可能是括号之间缺少逗号?

标签: javascript php mysql json highcharts


【解决方案1】:

试试这个

$items2  = array();
while ($row_RecordsetTabla2 = mysql_fetch_assoc($RecordsetTabla2))
{
    $idDispositivo = $row_RecordsetTabla2['idDispositivo']; 

    $query_RecordsetTabla3 = "SELECT * FROM registros WHERE idUsuario = (SELECT idUsuario FROM usuarios WHERE userName = '$sesionUser') AND idDispositivo = '$idDispositivo' AND fecha = '$sesionFechaActualArreglo'";
    $RecordsetTabla3 = mysql_query($query_RecordsetTabla3, $conexion) or die(mysql_error());
    $totalRows_RecordsetTabla3 = mysql_num_rows($RecordsetTabla3);
    if ($totalRows_RecordsetTabla3 != 0) {  ///para ver si tienen resultados la consulta
    unset($items);      

        while ($row_RecordsetTabla3 = mysql_fetch_assoc($RecordsetTabla3))
        {
            $fecha = $row_RecordsetTabla3['fecha'];
            $hora = $row_RecordsetTabla3['hora'];
            $estado = $row_RecordsetTabla3['estado']; 
            $arregloFecha = date_format(new DateTime($fecha),"Y-m-d");
            $arregloHora = date_format(new DateTime($hora),"H:i");
            $arregloHora2 = strtotime($arregloHora) * 1000;
            $arr = array($arregloHora2, floatval($estado));
            $items['data'][]  =  $arr;
        }
        $items['name'] = $idDispositivo;

        array_push($items2, $items);

    } //del if
}

echo json_encode($items2);

【讨论】:

  • 哇!是的!我不能相信! Jerko再次救我!它的工作!
  • 快速有效。我的尊重和钦佩!
  • 很高兴我能再次提供帮助 :) 不要忘记将我的答案标记为正确,这可能对其他人也有帮助;)
  • 是的!你很棒! ...¿谁能将您的答案标记为正确? ...我不能投票...网络告诉我我没有名声...
  • ...我将您的个人资料直接放到“我的最爱”...也许还有主页!jajajaj
猜你喜欢
  • 2014-06-09
  • 1970-01-01
  • 2014-02-21
  • 1970-01-01
  • 2016-05-25
  • 2013-04-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-30
相关资源
最近更新 更多