2017-09-15 1 views
0

Ich versuche, Morris Liniendiagramm mit Daten von MySQL mit PHP zu tun. Aber ich bekomme Array zu String-Konvertierung Fehler in meiner Konsole, wenn ich debuggen. Unten ist mein CodeDynamic Morris Line String-Konvertierung ERROR

 <?php 

      try { $stmt = $db->prepare(" SELECT register_date FROM members "); 
        $stmt->execute(); 
       } 
      catch(PDOException $e) { 
        echo '<p class="bg-danger">'.$e->getMessage().'</p>'; 
        } 


       $chart_data = array(); // define array 

       while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
        $signup = date('F d Y ', strtotime($row["register_date"])); 

        $chart_data .= "{ date: '" .$signup. "' },"; 

        } 

     ?> 

     <script type="application/javascript"> 

      Morris.Line({ 
        element: 'signups', // div id 
        data: [<?php echo $chart_data; ?>], 
        xkey: 'date', 
        ykeys: 'date', 
        lables: 'sigups', 
        hidehover: 'auto' 


       }); 

     </script> 

Antwort

0

$chart_data enthält ungültig json.

Bitte, nicht erfinden das Rad und benutzen json_encode:

$chart_data = array(); // define array 
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    $signup = date('F d Y ', strtotime($row["register_date"])); 
    $chart_data[] = ['date' => $signup]; 
} 

js-Teil:

Morris.Line({ 
    element: 'signups', // div id 
    data: <?php echo json_encode($chart_data); ?>, 
    xkey: 'date', 
    ykeys: 'date', 
    lables: 'sigups', 
    hidehover: 'auto' 
}); 
+0

wenn ich json_encode ($ chart_data) echo. Ich bekomme Uncaught TypeError: Kann Eigenschaft "Match" von undefined nicht lesen –

+0

Für welche Codezeile? –

+0

Einfache Suche schlägt vor, diese https://stackoverflow.com/questions/24601985/morris-js-uncaught-typeerror-cannot-read-property-match-of-undefined –