tags:

views:

97

answers:

2

Suppose that I have a string $var:

//php code

$var = "hello,world,test";
$exp = explode(",",$var);

Now I get the array as exp[0],exp[1],exp[1] as 'hello', 'world' and 'test', respectively.

I want to use this all value in javascript in this:

var name = ['hello','world','test'];

How can I generate that JavaScript in PHP?

+1  A: 

Karl B's answer is better - use that!

Wouldn't an easier way be like this:

$var = "hello,world,test";
$var = str_replace(",", "','", $var);

Then wherever you're spitting out JavaScript (assuming you can use PHP there):

var name = ['<?php echo $var; ?>'];

This doesn't deal properly with quoted values though - if you want that, you're better off with using fgetscsv et al.

If you're determined to use explode, then you can use its other-half, implode like this in your output:

var name = ['<? php echo implode("','", $var); ?>'];
Dominic Rodger
Thanks a lot Dominic Rodger i got the concept thanks
vipinsahu
You should remember to escape quotes. If `$var = "he'llo,world"` then above code will fail. Use `array_walk($var, 'addslashes');` before `explode`.
Crozin
String declarations in JavaScript are not the same as in PHP.
Gumbo
+9  A: 

I would have thought json_encode would be the most reliable and simplest way.

E.g.

$var = "hello,world,test";
$exp = explode(",",$var);
print json_encode($exp);
Karl B
+1 This the the best way to turn any PHP value into a JavaScript value literal. Remember to use at least the `JSON_HEX_TAG` flag if you are in a `<script>` block to avoid `</` in the string breaking the script block, or `JSON_HEX_TAG|JSON_HEX_AMP` for XHTML compatibility.
bobince
+1 from me too - didn't know about `json_encode` - can I suggest adding some sample code that the OP can use? Hopefully he'll then accept your answer instead, and I can delete mine.
Dominic Rodger
Have added a bit of example code as recommended (and as I should have done in the first place).
Karl B
Great, thanks Karl!
Dominic Rodger
Thanks Karl its really cool
vipinsahu