我的Firebug控制台中的参数列表后出现错误
。我的问题是如何将JavaScript函数中的$ char_data变量作为参数传递
定义php变量:
<?php
$chart_data = "['NBA',1],['NFL',2],['MLB',3],['NHL',4]";
$div = "graph";
?
使用define参数调用JavaScript函数
<script>
dynamicChartArray('<?php echo $div;?>','<?php echo $chartdata;?>')
</script>
JavaScript的功能
<script>
function dynamicChartArray(div,chartdata){
var myData = new Array(chartdata);
var myChart = new JSChart(div, 'pie');
alert(chartdata+div);
}
<script>
答案 0 :(得分:2)
而不是
$chart_data = "['NBA',1],['NFL',2],['MLB',3],['NHL',4]";
使用
$chart_data = "[\"NBA\",1],[\"NFL\",2],[\"MLB\",3],[\"NHL\",4]";
将您的电话改为:
dynamicChartArray('<?php echo $div;?>',[<?php echo $chartdata;?>])
功能于此:
function dynamicChartArray(div,chartdata){
var myData = chartdata;
var myChart = new JSChart(div, 'pie');
alert(chartdata+div);
}
答案 1 :(得分:2)
'<?php echo $chartdata;?>'
这将回应'['NBA',1],['NFL',2],['MLB',3],['NHL',4]'
。请注意单引号内部是否有单引号。
new Array(chartdata)
这只会创建一个数组,其中包含一个元素,即字符串"['NBA',1],['NFL',2],['MLB',3],['NHL',4]"
。
尝试dynamicChartArray('<?php echo $div;?>',[<?php echo $chartdata;?>])
这将使chartdata
成为一个数组数组。
答案 2 :(得分:2)
不是在javascript中用字符串创建一个数组,为什么不只是让PHP将它作为一个数组输出呢?
只需添加一组额外的[],javascript将其作为数组读取。
$chart_data = "[['NBA',1],['NFL',2],['MLB',3],['NHL',4]]";
然后抛弃输出上的引号(负责导致错误消息)
dynamicChartArray('<?php echo $div;?>', <?php echo $chartdata;?>);
然后myData可以等于图表数据(因为它已经是一个数组)
var myData = chartdata;
答案 3 :(得分:1)
改变这个:
dynamicChartArray('<?php echo $div;?>','<?php echo $chartdata;?>')
到此:
dynamicChartArray('<?php echo $div;?>', [<?php echo $chart_data;?>]);
看看它是否有效
答案 4 :(得分:1)
您不需要var myData = new Array(chartdata);
。
chartdata
已经是一个数组。答案 5 :(得分:1)
看看json_encode。
$chart_data = json_encode(array(array('NBA',1),array('NFL',2)));
将生成一个json字符串,准备回显到您的脚本
string(21) "[["NBA",1],["NFL",2]]"
答案 6 :(得分:1)
你应该看一下输出。我打赌它是:
dynamicChartArray('graph','['NBA',1],['NFL',2],['MLB',3],['NHL',4]')
您已经可以看到引号出现问题。
我建议创建一个数组并使用json_encode
:
$chart_data = array(
array('NBA',1),
array('NFL',2),
array('MLB',3),
array('NHL',4)
);
和
dynamicChartArray('<?php echo $div;?>', <?php echo json_encode($chartdata); ?>)
JSON恰好也是有效的JavaScript,它为您提供了更多在服务器端处理数据的可能性。