2009-11-14 2 views
1

내가 가진이 PHP 코드에서 XML을 보내고 변수는 XML 데이터은 JS 변수

$strXML = "<chart caption='ADI Chart Test ' xAxisName='Month' yAxisName='Units'" 
$strXML.= "showValues='0'formatNumberScale='0' showBorder='1'>"; 

echo "<td align='right' onClick='drawchart($strXML)' > $totalcost </td> " ;` 

이가 내 문제가 링크가 표시되지 않는 것을

function drawchart(dataX) { 
var chart1 = new FusionCharts("../charts/Pie3D.swf", "chart1Id", "400", "300","1"); 
chart1.setDataXML(dataX); 
chart1.render("chart1div"); 

자바 스크립트 함수에 전달된다 정확하고 더 중요한 것은 js 함수에 도달 할 때 데이터가 없다는 것입니다.

js 변수를 통해 xml 데이터를 보내는 방법을 알려주시겠습니까?

+0

40 분 전에 같은 질문을 했습니까? http://stackoverflow.com/questions/1734555/send-xml-in-a-js-variable-to-fusioncharts –

답변

1

올바른 HTML로 렌더링하려면 strXML을 인코딩해야합니다. 또한 유효한 Javascript 리터럴이되도록 아포스트로피로 묶어야합니다.

echo 
    "<td align='right' onClick='drawchart(\"" . 
    htmlspecialchars(json_encode($strXML)) . 
    "\")'> $totalcost </td>"; 
+1

아포스트로피로 묶는 것만으로는 충분하지 않습니다. 아포스트로피 (또는 다른 백 슬래시)를 백 슬래시로 이스케이프 처리해야합니다. 작은 따옴표로 묶기 전에 문자열에. 한 번에 모든 작업을 수행하는 가장 쉬운 방법은'' ''입니다. – bobince

0

찾고있는 최종 결과는 무엇입니까? XML/JS 부분을 무시합니까?

그냥 차트에 다른 속성을 지정하려는 경우, 당신은 단지 setDataURL 기능을 통해 데이터를로드 할 수 없습니다 : 에코 "< TD :

var url="/path/to/data.php"; 

var chart1 = new FusionCharts("../charts/Pie3D.swf", "chart1Id", "400", "300","1"); 

url=escape(url); 

chart1.setDataURL(url); 

chart1.addParam("WMode", "Transparent"); 

chart1.render("chart1div"); 
0

당신이에서 뭔가 빠진 것 같다 ";

에코`가

그것이 있어야"< TD 정렬 = '오른쪽'의 onclick = 'drawc ='오른쪽 '의 onclick = "drawchart ($에 strXML)'> $ TOTALCOST </TD>을 정렬 hter (\ "$ strXML \") '> $ totalcost </td> ";'