【问题标题】:Send XML in a js variable在 js 变量中发送 XML
【发布时间】:2015-03-01 10:23:20
【问题描述】:

我有这个 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 数据?

【问题讨论】:

标签: php javascript fusioncharts


【解决方案1】:

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

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

【讨论】:

  • 用撇号括起来是不够的,在用单引号括起来之前,您需要对字符串中的任何撇号(或其他反斜杠)进行反斜杠转义。一次性完成所有操作的最简单方法是:'&lt;td ... onclick="drawchart('.htmlspecialchars(json_encode($strXML)).');"&gt;'
【解决方案2】:

您似乎在这方面遗漏了一些东西: echo "

$totalcost " ;`

应该是:

echo "

$totalcost " ;`

【讨论】:

    【解决方案3】:

    您要寻找的最终结果是什么 - 忽略 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");
    

    【讨论】:

      猜你喜欢
      • 2010-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      相关资源
      最近更新 更多