2013-07-04 3 views
0

Я пытаюсь построить данные mysql с d3. Я использую php для преобразования в формат json, но он пока не работает! В целях тестирования я выполнил следующие шаги: here Я использовал simple-graph.html с моим собственным php-файлом на XAMPP.json mysql data to d3 plot

include('connect.php'); 
$result=$con->query("SELECT date, close FROM testable");  
echo json_encode($result->fetchAll(PDO::FETCH_ASSOC)); 

Это эхо в формате JSON выглядеть примерно так: [{"date":"1-May-12","close":"43.32"},{"date":"30-Apr-12","close":"22.54"},{"date":"27-Apr-12","close":"21.54"},{"date":"25-Apr-12","close":"21.42"}]

График получает отображается, когда я обеспечиваю файла JSON, но не с файлом PHP.

Это работает:

d3.json("json.json", function(error, data) {   
data.forEach(function(d) {        
d.date =parseDate(d.date);       
d.close = +d.close;         
}); 

Это не работает:

d3.json("tablecreate.php", function(error, data) {  
data.forEach(function(d) {        
d.date =parseDate(d.date);       
d.close = +d.close;         
}); 

Все файлы находятся в одной папке.

Не могли бы вы указать мою ошибку?

+0

Когда вы говорите, что это не работает, что вы имеете в виду? Вы получаете сообщение об ошибке или не видите, что вы ожидаете от него? Проверьте, что выход из вашего PHP-скрипта - это JSON (и только JSON), который вы ожидаете. –

+0

Я получаю пустую страницу. извините, забыл, что –

+0

В качестве теста вы можете запустить свой php-скрипт в браузере, а затем взять эхо-результаты, сохранить их в файле с именем xxx.json, а затем открыть страницу, чтобы открыть json? Просто хочу исключить любую возможность того, что процесс возвращения данных искажает его. – d3noob

ответ

0

Вы не указали свой полный источник php о том, как отправить сообщение json на ваш сценарий d3. Одна из проблем будет заключаться в том, что вы не отправляете правильный заголовок типа контента. Ниже приведен некоторый контент из ссылки API для d3.

Creates a request for the JSON file at the specified url with the mime type "application/json". If a callback is specified, the request is immediately issued with the GET method, and the callback will be invoked asynchronously when the file is loaded or the request fails; the callback is invoked with two arguments: the error, if any, and the parsed JSON. The parsed JSON is undefined if an error occurs. If no callback is specified, the returned request can be issued using xhr.get or similar, and handled using xhr.on.

убедитесь, что вы выпустили следующее заявление, прежде чем вы эхо произведете вывод json.

header("Content-Type: application/json"); 
+1

Спасибо. Это не повлияло. Может быть, проблема XAMPP? Сюжет отображается в браузере, когда я использую json-файл, но не на localhost. –