我有这个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数据吗?
答案 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;”;`