2011-10-22 2 views
3

Highcharts X 축에 대해 항목의 PHP 배열을 레이블로 변환하려고합니다. 기본 예제입니다 PHP 배열에서 문자열 서식이 지정된 데이터로 Highcharts 축을 채우는 방법

categories: ['Jan','Feb','Mar','Apr', 'May', 'Jun', 
        'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] 

그래서 나는 PHP 배열 ($ 항목)이 있고 자바 스크립트 배열 (VAR 항목)와 끝까지. Firebug는 다음을 출력합니다 :

console.log(items); 
["item1_10_20", "item2_2011_10_14", "item3_2011_10_07", "item3_2011_09_12"] 

대신 작은 따옴표를 사용해야합니다. 어떻게해야합니까? 아니면 하이 차트에 쉼표와 작은 따옴표로 구분 된 문자열을 대신 입력해야합니까? 어느 쪽을해야합니까?


편집

이 시도하지만, 행운의 모든 것! 내보기 파일

는 I는 자바 스크립트가 :
var items = "'<? echo join("','", $items) ?>'"; // Note the enclosing single quotes 

그리고 Highcharts JS 파일

: 전체 배열은 X 축의 첫 번째 값에 배치

xAxis: { 
categories: [items] 
}, 

및 나머지 값은 공 i입니다. 항목 변수는 방화범 아래에 표시됩니다 :

'item1_2011_10_20','item2_2011_10_14','item3_2011_10_07','item4_2x1_2011_09_12' 

어떻게 작동하지 않습니까?


PHP는 배열 형식을로 json_encode를 사용하여 편집, 난 여전히 배열을 인식 highcharts을 얻을 수 없습니다. 작은 따옴표로 배열을 수동으로 복사하고 하드 코딩하면 작동합니다. 하지만 정말 변수를 통해 PHP에서 highcharts 'js 배열을 전달해야합니다. 여기

가로 json_encode 통해 어레이 얻어진 X 축 같습니다 Chart with bad x-axis

+0

있습니까 : – user962158

+0

먼저 해봤지만, 변수를 선언하고 자바 스크립트에 전달. 제 경우에는 뷰 파일의 PHP와 JS가 다른 파일에서 실행됩니다. 이 방법으로, Highcharts는 전체 배열을 X 축의 첫 번째 항목으로 배치했습니다. 나머지 축 값은 비어 있습니다. – Landitus

답변

4

다음 이미 배열 - 그래서

["item1_10_20", "item2_2011_10_14", "item3_2011_10_07", "item3_2011_09_12"] 

다음

xAxis: { 
    categories: [items] 
}, 

변경은 다음과 같이 -

xAxis: { 
    categories: items 
}, 

는 업데이트 :

xAxis: { 
    categories: eval('(' + items + ')') 
}, 

갱신 2 : 당신이 알 필요가

것은 JSON은 자바 스크립트가되지 않는 것입니다. Javascript의 문자열 이상인 서버에서 JSON 응답을받습니다.따라서 Javascript에서 JSON 응답을 사용하려면 JSON을 구문 분석하여 객체, 배열 등 (예 : XMl과 마찬가지로) 파싱이라고하는 Javascript 데이터 구조를 만들어야합니다.

많은 JSON 구문 분석 라이브러리가 있지만 보안이 중요하지 않은 한 eval JS 함수를 사용하여 작업을 수행 할 수도 있습니다.

JSON 응답은 배열을 나타 내기 때문에 eval을 사용하여 실제 자바 스크립트 배열로 변환합니다.

그래서, items는 JSON 그리고 당신은 자바 스크립트 배열을 반환하는 구문 분석 eval (eval('(' + items + ')'))를 사용하고 다음 categories에 결과를 할당합니다. 당신은 JS 배열의 중앙으로 PHP 배열을 인쇄 할 수없는 이유가

@{ 
    string[] myIntArray = new string[5] {"Apples", "Oranges", "Pears", "Grapes", "Bananas" }; 
    var serializer = new System.Web.Script.Serialization.JavaScriptSerializer(); 
    var jsVariable = serializer.Serialize(myIntArray); 
} 


xAxis: { 
    categories: @Html.Raw(jsVariable) 
}, 
+0

그 배열은 php와 json_enconde를 통해 생성됩니다. 결과는 highcharts에 의해 아직도 좋아하지 않습니다, 나는 스크린 샷을 게시 할 것입니다. – Landitus

+0

@ Landitus : 분석해야 할 수도 있습니다. 업데이트를 참조하십시오. –

+0

감사합니다 Bhesh !! 이 '평가판'으로 정확히 무엇이 바뀌 었는지 설명하고 싶습니까? – Landitus

1

나는 나는 면도칼이 방법으로 해결, C#을 배열과 같은 문제가 있었다? 전의. 카테고리 : [ '< ']
관련 문제