Отправить XML в переменной js - PullRequest
1 голос
/ 14 ноября 2009

У меня есть этот 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

Может кто-нибудь сказать мне, как отправить данные XML через переменную js, пожалуйста?

Ответы [ 3 ]

1 голос
/ 14 ноября 2009

Вы должны закодировать strXML, чтобы отобразить его как действительный HTML. Кроме того, вы должны заключить его в апострофы, чтобы он стал действительным литералом Javascript.

echo
     "<td align='right' onClick='drawchart(\"" .
     htmlspecialchars(json_encode($strXML)) . 
     "\")'> $totalcost </td>";
0 голосов
/ 29 ноября 2009

Кажется, вы что-то упустили в этом: echo "

$ totalcost "; `

должно быть:

echo "

$ totalcost "; `
0 голосов
/ 15 ноября 2009

Какой конечный результат вы ищете - игнорирование части 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");
...