admin管理员组

文章数量:1401281

I am getting the error missing ) after argument list in my Firebug console.

emissing ) after argument .jpg

My question is how to pass $char_data variable in JavaScript function as a argument

Define php variable:

<?php 
$chart_data = "['NBA',1],['NFL',2],['MLB',3],['NHL',4]"; 
$div = "graph";
?

Call JavaScript function with define argument

<script>
dynamicChartArray('<?php echo $div;?>','<?php echo $chartdata;?>')
</script>

A function of JavaScript

<script>
function dynamicChartArray(div,chartdata){
var myData = new Array(chartdata);
var myChart = new JSChart(div, 'pie');
alert(chartdata+div);
}
<script>

I am getting the error missing ) after argument list in my Firebug console.

emissing ) after argument http://a8.sphotos.ak.fbcdn/hphotos-ak-snc7/s720x720/393131_320846714645076_100001592501599_911297_470580896_n.jpg

My question is how to pass $char_data variable in JavaScript function as a argument

Define php variable:

<?php 
$chart_data = "['NBA',1],['NFL',2],['MLB',3],['NHL',4]"; 
$div = "graph";
?

Call JavaScript function with define argument

<script>
dynamicChartArray('<?php echo $div;?>','<?php echo $chartdata;?>')
</script>

A function of JavaScript

<script>
function dynamicChartArray(div,chartdata){
var myData = new Array(chartdata);
var myChart = new JSChart(div, 'pie');
alert(chartdata+div);
}
<script>
Share Improve this question edited May 29, 2016 at 16:19 halfer 20.4k19 gold badges109 silver badges202 bronze badges asked Mar 19, 2012 at 19:12 Query MasterQuery Master 7,1075 gold badges37 silver badges58 bronze badges 2
  • See my updates with screeshot – Query Master Commented Mar 19, 2012 at 19:38
  • i was tried all of thing but the error missing ) after argument list in my Firebug console. – Query Master Commented Mar 19, 2012 at 19:51
Add a ment  | 

7 Answers 7

Reset to default 2

Rather than creating an array out of a string in javascript, why not just just get the PHP to output it as an array to start with?

Just add an extra set of [] which javascript reads as an array.

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

then ditch the quotes on the output (which are responsible for causing the error messages)

 dynamicChartArray('<?php echo $div;?>', <?php echo $chartdata;?>);

and then myData can just equal chart data (since its already an array)

var myData = chartdata;
'<?php echo $chartdata;?>'

This is going to echo '['NBA',1],['NFL',2],['MLB',3],['NHL',4]'. Note how there are single quotes inside the single quotes.

 new Array(chartdata)

This will just make an array, with one element, the string "['NBA',1],['NFL',2],['MLB',3],['NHL',4]".

Try doing dynamicChartArray('<?php echo $div;?>',[<?php echo $chartdata;?>])

This will make chartdata an array of arrays.

Instead of

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

Use

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

Change your call to this:

dynamicChartArray('<?php echo $div;?>',[<?php echo $chartdata;?>])

And function to this:

function dynamicChartArray(div,chartdata){
var myData = chartdata;
var myChart = new JSChart(div, 'pie');
alert(chartdata+div);
}

change this:

dynamicChartArray('<?php echo $div;?>','<?php echo $chartdata;?>')

to this:

dynamicChartArray('<?php echo $div;?>', [<?php echo $chart_data;?>]);

and see if it works

You dont need var myData = new Array(chartdata);.

chartdata is already an array.

Take a look at json_encode.

$chart_data = json_encode(array(array('NBA',1),array('NFL',2)));

which will produce a json string ready to echo into your script

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

You should have a look at the output. I bet it is:

dynamicChartArray('graph','['NBA',1],['NFL',2],['MLB',3],['NHL',4]')

and you can already see that you have problems with the quotes.

Instead of creating a string, I suggest to create an array and use json_encode:

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

and

dynamicChartArray('<?php echo $div;?>', <?php echo json_encode($chartdata); ?>)

JSON happens to be valid JavaScript as well and it gives you more possibilities to process the data on the server side.

本文标签: how to pass array string in JavaScript function from PHP end as a argumentStack Overflow