highchart использовать ajax для php + mysql - PullRequest
0 голосов
/ 27 мая 2020

Я использую highchart на листовке-карте. Я использую ajax, чтобы получить данные в php. Я вижу данные, возвращенные в console.log, но не могу нарисовать линейную диаграмму. Есть ли проблема? Я напрямую пишу php, js и html в программном коде может отображаться, формат данных я не менял.

enter image description here

Это мой результат enter image description here

Это console.log show

Это мой html код:

 <div class="inner">
            <div id="map" style="width: 600px; height: 400px;"></div>

            <script src="assets/js/leaflet2.js"></script>
        </div>

листовка2 . js

function onClick(e){
var popup = e.target.getPopup();
var content = popup.getContent();
var find_1 = content.indexOf('>');
var find_2 = content.indexOf('/');
var id = content.substring(find_1+1,find_2-1);

 $.ajax({
   type: 'POST',
   url: 'http://localhost/html5up-helios/chart.php',
  data: {
  "device":id
},
success:function(data){
    // console.log(data);

    var modify = data.indexOf('[');
    var show = data.substring(modify);
    console.log(show);

    var chart = new Highcharts.Chart({
        chart: { height: 175, width: 300 ,
       renderTo: 'container'}, 
        title: { text: '' },
        series: [{
            name: 'PM 2.5',
            data: show

        }
    ],
        credits: {
            enabled: false 
        },
        exporting:{
            enabled:false 
         }
 });
   }

 });
}

диаграмма. php

<?php
include("connection.php");

if (isset($_POST["device"])) {
    $id =   $_POST["device"];
    error_log(print_r($id, true));
} else {
    error_log(print_r("error", true));
}

try {
    $sql = "SELECT * FROM day WHERE DATE_SUB(curdate(), INTERVAL 20 DAY) <= date(date)";
    if ($stmt = $db->query($sql)) {
        while ($result = mysqli_fetch_array($stmt)) {
            $number_pm = intval($result['pm25']);
            if ($number_pm < 0) {
                $number_pm = 0;
            }

            $pm25[] = array(
                $result['date'], $number_pm
            );
        }


        $pm25 = json_encode($pm25);
        echo $pm25;
    }
    } catch (Exception $e) {
       die($e);
   }
   ?>

В дополнение к этому, isset ($ _ POST ["device"]) в моем php будет отображать ошибку, но я должен пройти данные в буклете. js (

$ .ajax ({
    type: 'POST',
    url: 'http: //localhost/html5up-helios/chart.php',
    data: {
      "device": id
    },});

)

php похоже ничего не получает, или я ошибаюсь?

...