Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Passing PHP array into external Javascript function as array

Tags:

javascript

php

I'm doing something which I need to pass an array from my php to a function on an external javascript. I'm currently doing some test right now which looks like this:

<input type="text" onclick="show_error_message('<?php echo $array_sample ?>')" readonly="readonly">

and the javascript function is this one:

function show_error_message(test) {
alert(test)
}

my $array_sample contains data which is array("1","2","3"); but the return alert would be Array and whenever I change the $array_sample into $array_sample[0] when passing the parameters I got a data which is 1 as alert. I wonder how can I pass the whole array on this to be fetched also by an array in javascript. Well as you can see, I intended it to be a popup message for error handling which is why I need it to be dynamic.

like image 864
KaHeL Avatar asked Nov 29 '22 13:11

KaHeL


1 Answers

Use json_encode

onclick='show_error_message(<?php echo  json_encode($array_sample) ?>)'

or

onclick="show_error_message(<?php echo htmlspecialchars(json_encode($array_sample)) ?>)"

Notice the lack of quotes(') around the php code, this way an array literal is passed to show_error_message and not a string.

like image 148
Musa Avatar answered Dec 06 '22 00:12

Musa