如何从PHP端传递JavaScript函数中的数组字符串作为参数?

如何从PHP端传递JavaScript函数中的数组字符串作为参数?,php,javascript,charts,arguments,Php,Javascript,Charts,Arguments,我在Firebug控制台中获得参数后的错误列表 我的问题是如何在JavaScript函数中将$char_数据变量作为参数传递 定义php变量: <?php $chart_data = "['NBA',1],['NFL',2],['MLB',3],['NHL',4]"; $div = "graph"; ? 更改此选项: dynamicChartArray('<?php echo $div;?>','<?php echo $chartdata;?>') dyn

我在Firebug控制台中获得参数后的错误列表

我的问题是如何在JavaScript函数中将$char_数据变量作为参数传递

定义php变量:

<?php 
$chart_data = "['NBA',1],['NFL',2],['MLB',3],['NHL',4]"; 
$div = "graph";
?
更改此选项:

dynamicChartArray('<?php echo $div;?>','<?php echo $chartdata;?>')
dynamicChartArray(“”,“”)
为此:

dynamicChartArray('<?php echo $div;?>', [<?php echo $chart_data;?>]);
dynamicChartArray(“”,[]);
然后看看它是否有效

而不是

$chart_data = "['NBA',1],['NFL',2],['MLB',3],['NHL',4]"; 
使用

将您的呼叫更改为:

dynamicChartArray('<?php echo $div;?>',[<?php echo $chartdata;?>])
这将只生成一个数组,包含一个元素,字符串
“['NBA',1],'NFL',2],'MLB',3],'NHL',4]”

尝试执行
dynamicChartArray(“”,[])


这将使
chartdata
成为数组的数组。

您不需要
var myData=new数组(chartdata)


chartdata
已经是一个数组了。与其用javascript中的字符串创建一个数组,为什么不让PHP将其作为数组输出呢

只需添加一组额外的[],javascript将其读取为数组

$chart_data = "[['NBA',1],['NFL',2],['MLB',3],['NHL',4]]"; 
然后删除输出上的引号(导致错误消息的引号)

看一看

这将生成一个json字符串,随时可以回显到脚本中

string(21) "[["NBA",1],["NFL",2]]"

您应该看看输出。我敢打赌:

dynamicChartArray('graph','['NBA',1],['NFL',2],['MLB',3],['NHL',4]')
您已经可以看到,您在引用方面存在问题

我建议不要创建字符串,而是创建一个数组并使用
json\u encode

$chart_data = array(
    array('NBA',1),
    array('NFL',2),
    array('MLB',3),
    array('NHL',4)
);

dynamicChartArray(“”,)

JSON恰好也是有效的JavaScript,它为您提供了更多在服务器端处理数据的可能性。

如何将我的char\u数据更改为这样实际上,此chart\u数据包含动态值创建字符串values@Samad,只需将图表数据传递到需要发送的位置。@Samad,简单的传递
chartdata
它需要发送到哪里。查看我用screeshoti进行的更新我在Firebug控制台中的参数列表后尝试了所有东西(但错误丢失)。代码在我的控制台中工作正常吗?您是否能够将PHP输出(并导致错误)的javascript代码添加到您的帖子中?可能只是因为您的一个值有问题,例如,如果引号中的一个值是“O'Neil”,则需要进行转义,以阻止它破坏javascript.Thanx与我共享您的经验
'<?php echo $chartdata;?>'
 new Array(chartdata)
$chart_data = "[['NBA',1],['NFL',2],['MLB',3],['NHL',4]]"; 
 dynamicChartArray('<?php echo $div;?>', <?php echo $chartdata;?>);
var myData = chartdata;
$chart_data = json_encode(array(array('NBA',1),array('NFL',2)));
string(21) "[["NBA",1],["NFL",2]]"
dynamicChartArray('graph','['NBA',1],['NFL',2],['MLB',3],['NHL',4]')
$chart_data = array(
    array('NBA',1),
    array('NFL',2),
    array('MLB',3),
    array('NHL',4)
);
dynamicChartArray('<?php echo $div;?>', <?php echo json_encode($chartdata); ?>)