2015-05-18 2 views
0

Я путаюсь с Highcharts из данных csv.Генерировать диаграммы из CSV, генерируемые php

Из этого примера: http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/line-ajax/

$.getJSON('http://www.highcharts.com/samples/data/jsonp.php?filename=analytics.csv&callback=?', function (csv) { }) 

Он может прочитать файл CSV, но когда я установить URL, как это, он не работает

$.getJSON(baseurl+'webtools/analytics/submissions_data', function (csv) { 
    console.log(csv); 
    }); 

мой стороне сервера код:

function submissions_data() { 
    header('Content-Type: text/csv; charset=utf-8'); 
    $qry = "SELECT DATE(created_date) dateonly, COUNT(id) AS total FROM mf_story GROUP BY dateonly ORDER BY dateonly ASC;"; 
    $rows = $this->db->query($qry)->result_array(); 

    $output = fopen('php://output', 'w'); 

    $column = array("Day","Submissions"); 
    fputcsv($output, $column); 

    foreach($rows as $data){ 
     $date = DateTime::createFromFormat('Y-m-d', $data['dateonly']); 
     $data['dateonly'] = $date->format('n/d/Y'); 
     fputcsv($output, $data); 
    } 
} 

И я экспериментировал с $ .ajax

$.ajax({ 
    url:baseurl+'webtools/analytics/submissions_data', 
      type: 'get', 
      dataType: 'jsonp', 
      success: function(data) { 
       console.log("data read"); 
      }, 
      error: function(jqXHR, textStatus, errorThrow){ 
       console.log(jqXHR['responseText']); //the csv printed here 
      } 

И удивительно, что мой csv напечатан в функции ошибки. Любые идеи почему? И что мне делать, чтобы исправить это? Это довольно уродливо, чтобы поместить мой код highcharts в функцию ошибки.

+0

1) Что вы имеете в виду именно «не работает»? 2) Вы проверили точность вашего сконструированного URL (baseurl + 'webtools/analytics/submissions_data')? Что возвращается? 3) если у вас есть файл csv, «jsonp» не похоже на правильный тип данных. 4) «Почему?» и «Как это исправить?» Нужны более конкретные детали для работы с ... – jlbriggs

+0

@jlbriggs 1) Образец из highcharts использовал csv правильно? Когда я изменил URL-адрес моего собственного созданного csv, на консоли, ничего не печатал. 2) Да, это действительный url. 4) Мне нужна помощь со стороны моего сервера, потому что я могу успешно получить csv с http://www.highcharts.com/samples/data/jsonp.php?filename=analytics.csv&callback=? но не удалось при использовании моей серверной части. –

+0

Удалите эту строку: 'dataType: 'jsonp',' Вы не используете формат 'jsonp' .. Это единственное, на что вы не ответили (№ 3), и это преступник, почему вы видите данные в' error() '. –

ответ

0

Найдено исправление, я изменил стороне сервера код в текст/JSON и поместить CSV в строке

function submissions_data() { 
    header('Content-Type: text/json'); 
    $qry = "SELECT DATE(created_date) dateonly, COUNT(id) AS total FROM mf_story GROUP BY dateonly ORDER BY dateonly ASC;"; 
    $rows = $this->db->query($qry)->result_array(); 

    $out = "Day,Submissions\n"; 

    foreach($rows as $data){ 
     $date = DateTime::createFromFormat('Y-m-d', $data['dateonly']); 
     $data['dateonly'] = $date->format('n/d/Y'); 
     $out.=$data['dateonly'].",".$data['total']."\n"; 
    } 

    echo json_encode($out); 
} 

И мой JSON можно прочитать, спасибо: D

Смежные вопросы