2012-05-21 3 views
1

ajax를 사용하여 PHP 스크립트에 연결 한 다음 jqplot jQuery 그래프 라이브러리에 필요한 그래프 좌표를 검색합니다.PHP에서 jqplot 데이터 배열을 만드는 방법은 무엇입니까?

문제는 jqplot이 읽을 수있는 jQuery 배열로 변환 할 수있는 적절한 PHP 배열을 만드는 데 어려움을 겪고 있다는 것입니다. 당신은 내가 적절한 데이터 배열을 만들 수 있도록 도와주십시오 수 있다면 jqplot

jQuery.jqplot('chartdiv-data', [], { 
    title: 'Plot With Options', 
    dataRenderer: stored_data, 
    axesDefaults: { 
     labelRenderer: jQuery.jqplot.CanvasAxisLabelRenderer 
    }, 
    axes: { 
     xaxis: { 
      label: "Day", 
     }, 
     yaxis: { 
      label: "data" 
     } 
    } 
}); 

를 만드는 코드 여기

$.ajax({ 
    type: 'POST', 
    dataType: "json", 
    url: "behind_curtains.php", 
    data: { 
     monthSelected: month_option_selected 
    }, 
    success: function (data) { 
     var stored_data = data; 
     alert(stored_data); 
    } 
}); 
return stored_data; 
} 

됩니다 : 여기

는 PHP 파일에서 배열을 검색하는 코드입니다 behind_curtains.php 파일에서 멋질 것입니다!

[[[1,2],[3,5],[5,13]]] 

를 기본적으로 어떻게 든 PHP 코드를 작성해야 할 출력 할 수있는 배열이 그 형태로 데이터를 저장 :

편집 1 : 그래프는 어레이의 형태이어야 좌표.

감사

해결

:

behind_curtains.php * *

I 함께 단순 형태로 스트링을 발생시키는 배열을 넣어 [1,2], [3, 5], [5,13]]. 나는 그 변수에 문자열을 저장의 형태로 그 변수 반향 : 사물의 사용자 측면에서

echo json_encode($stored_data); 

여기 내 코드와 같은 모습입니다 :

<script type="text/javascript"> 
$("document").ready(function() { 
     $.ajax({ 
      type: 'POST', 
      dataType:"json", 
      url: "behind_curtains.php", 
      data: { 
       monthSelected: month_option_selected}, 
      success: function(data){      
      var stored_data = eval(data) ; 
/* generate graph! */ 
$.jqplot('chartdiv-weight', [stored_data], { 
title: month, 
axesDefaults: { 
    labelRenderer: jQuery.jqplot.CanvasAxisLabelRenderer 
    }, 
    axes: { 
    xaxis: { 
     label: "Day", 
    }, 
    yaxis: { 
     label: "data" 
    } 
    } 
}); 
     } 
     }); 
    } 

}});</script>

을 도움이 되었으면 좋겠습니다. 관심이있는 분은 알려주세요.

+0

AJAX 호출 후 데이터를 "반환"할 수 없습니다. 함수가 반환 할 때'stored_data'는 공백이됩니다. – Joseph

+0

정말 고마워, 나는 그것을 없애 :) :) (나는 아주 새로운 아약스입니다) – Dmitri

답변

1

당신은 stored_data 반환 할 수 있지만, 당신은 shown in the bottom most example, here.처럼 당신도 사용해야의 AJAX 호출하기 전에 선언이 필요합니다 : async: false 그렇지 않으면 당신이이 방식으로 데이터를 반환 할 수 없습니다. 같은 이유로 같은 경우 getJSON()을 대신 사용할 수 있습니다.

검색된 데이터의 서식을 지정하는대로 a similar issue I answered here. 데이터를 나타 내기 위해 배열을 적절하게 빌드해야합니다.

정확하게 당신의 JSON이 얼마나 정확한지를 보여줄 수 있다면 나는 더 정확한 대답을 줄 수 있습니다.

+0

대단히 감사합니다 당신의 대답에 대한 보로, 나는 그것을 알아 냈어! – Dmitri

+0

@Dmitri 당신의 솔루션이 무엇인지 다른 사람들과 공유 할 수 있다면 매우 좋을 것입니다.귀하의 질문에 호의적 인 사람이 적어도 한 명 있다는 것을 알고 있습니다. 귀하의 질문에 대한 답을 알고 싶을 것입니다. – Boro

관련 문제