2016-05-13 6 views
1

Ich versuche php zu verwenden, um Postgres zu verbinden und die Daten mit d3.js zu visualisieren. Ich habe die Daten erfolgreich nach json codiert, aber wenn ich die Daten mit d3.js laden will, gibt es einen SyntaxError: Unerwartetes Token < in JSON an Position 0 (...) index.html: 12 undefined.Postgre mit PHP verbinden und d3.js zur Visualisierung verwenden

Hier ist mein Code für php:

$db_connection = pg_connect("host=localhost dbname=xxx user=xxx  password=xxx"); 
    $result = pg_query($db_connection, "SELECT * FROM taxi_stats.satisfy"); 
    $data = array(); 
    while ($row = pg_fetch_array($result)) 
    { 
     $data[] = $row; 
    } 
    echo json_encode($data); 
    pg_close($db_connection); 

Für d3.js

<script> 
d3.json("data.php", function(error, data) { 
    if(error){ 
     console.log(error); 
    } 
    console.log(data); 
}); 
</script> 
+0

'SyntaxError: Unerwartetes Token <': Nach meiner Erfahrung und der Antworten hier ist das ein PHP-Fehler oder eine Warnung, die an das Javascript statt an json zurückgemeldet wird. Überprüfen Sie Ihre php_error.log. http://stackoverflow.com/questions/18561556/syntax-error-unexpected-token – mgraham

Antwort

0

Ändern Sie den Inhalt des Headers der Typ von 'text/javascript' auf 'text/html'.

Oder es könnte der Fehler sein, dass einer der Token '>' nicht mit einfachen oder doppelten Anführungszeichen umschlossen wird.

+0

Es funktioniert nicht für mich und ich habe keinen Fehler in codierten JSON. Wenn ich den codierten JSON in eine JSON-Datei kopiere und einfüge und ihn mit d3 lade, kann ich die Daten erfolgreich erhalten. Ich denke etwas passiert beim Laden von PHP als Datenquelle. –

0

Endlich habe ich es herausgefunden. Fügen Sie eine Zeile php header hinzu ('Content-type: application/json; charset = utf-8'); funktioniert für mich.