在js变量中发送XML

时间:2009-11-14 16:04:57

标签: php javascript fusioncharts

我有这个PHP代码,变量是XML数据

$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> " ;` 

将其传递给javascript函数

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

我的问题是链接没有正确显示,更重要的是当它到达js函数时没有数据

有人能告诉我如何通过js变量发送xml数据吗?

3 个答案:

答案 0 :(得分:1)

您应该对strXML进行编码,以便将其呈现为有效的HTML。此外,您应该使用撇号将其括起来,以使其成为有效的Javascript文字。

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

答案 1 :(得分:0)

您正在寻找的最终结果是什么 - 忽略XML / JS部分?

如果您只是尝试将其他属性分配给图表,则无法通过setDataURL函数加载数据:

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");

答案 2 :(得分:0)

似乎你遗漏了一些东西: echo“&lt; td align ='right'onClick ='drawchart($ strXML)'&gt; $ totalcost&lt; / td&gt;”;`

它应该是:

echo“&lt; td align ='right'onClick ='drawchart(\”$ strXML \“)'&gt; $ totalcost&lt; / td&gt;”;`