John Montgomery
John Montgomery

Reputation: 1965

Pass a PhP string to Mootools in Wordpress

I have a foreach loop that creates a string in php , I'm unable to pass the string value to mootools in wordpress (I'm integrating a MooTool function ) :::

I need to substitute the "hard coded" image URL's in the new Array() (below) with a variable created from my php string eg. new Array( $myimageurl ) :::

I've created a var from the php string even tried json_encode , with no luck :::

window.addEvent("domready", function(){
var counter = 0;
var images = new Array('http://localhost/square/wp-content/uploads/2011/10/test-foo/foo.jpg','http://localhost/square/wp-content/uploads/2011/10/test-foo/foo1.jpg');

Upvotes: 0

Views: 130

Answers (2)

Dimitar Christoff
Dimitar Christoff

Reputation: 26165

er, why not just:

var foo= <?=json_encode(Array("foo.jpg", "bar.jpg"))?>;

EDIT

Since you implied in a comment your files source is comma separated, then do this instead:

<? $files = "foo.jpg,bar.jpg"; ?>
var foo = <?=json_encode(explode(',', $files))?>;

where the array could be anything of any length, read from wherever. it will result in an array literal looking like so:

var foo = ["foo.jpg","bar.jpg"]; 
// eg use. 
foo.each(function(img) {
    new Element("img", {src: img}).inject(document.body);
));

nb: just noticed @Marc B has already mentioned json_encode. sorry, will delete

Upvotes: 1

Alex Angelico
Alex Angelico

Reputation: 4035

try:

var images = new Array('<?php echo $miImageUrl[0];?>', '<?php echo $miImageUrl[1];?>');

Other way:

<?php
//sample data
$descargables[0] = 'cero';
$descargables[1] = 'uno';
$descargables[2] = 'dos';
$descargables[3] = 'tres';
// end sample data

$arrayToJs="var descargables = new Array();";
for ($i=0; $i < count($descargables); $i++) {
    $arrayToJs .= "descargables[" . $i . "]='" . $descargables[$i]. "';";
}

?>

<script>
<?php echo $arrayToJs;?>
idx = 3;
alert("descargable:" + descargables[idx]);
</script>

Upvotes: 0

Related Questions