2012-03-12 41 views
0

我正在使用backstretch創建一個全屏幕背景幻燈片使用wordpress頁面中定義的圖像。jQuery Backstretch - 將php數組傳遞給javascript的問題?

我寫了一個函數,可以輸出每個圖像的src到數組。不過,我遇到通過這個PHP數組的JavaScript,或者字符串以JavaScript解析的方式,由於斜線等問題

終點直道要求圖像的這樣一個數組:

var images = [ 
     "http://dl.dropbox.com/u/515046/www/outside.jpg" 
    , "http://dl.dropbox.com/u/515046/www/garfield-interior.jpg" 
    , "http://dl.dropbox.com/u/515046/www/cheers.jpg" 
    ]; 

目前,我試圖來urlencode然後json_encode,但它似乎並沒有工作:

$photos = get_post_images(); 
$photosArray = array(); 

foreach ($photos as $photo) { 
    $photosArray[] = $photo[0]; 
} 

$photosArray = json_encode($photosArray); 

其中$照片[0]的URL等的圖像:

http://server/directory/file.jpg 

然後在使用Javascript:

var images = JSON.parse(<?=$photosArray?>); 

所推薦的this stackoverflow question它給出了一個錯誤:

Uncaught SyntaxError: Unexpected token h 

然後我嘗試簡單地傳遞數組,但它總是逃避斜線:

http:\/\/server\/wp\/ 

任何人都可以推薦解決方案嗎?

謝謝!

回答

0

我最終在PHP中建立了一個字符串變量,然後在javascript中回顯它。不是我會考慮最爲理想的解決方案,但似乎有沒有其他解決辦法:

$counter = 0;  
foreach ($photos as $photo) { 
    $photos_js .= "\"".$photo[0]."\""; 
    $counter++; 

    if ($counter < count($photos)) { 
    $photos_js .= ","; 
    } 
} 

然後在Javascript:

var images = [<?=$photos_js?>]; 
0
// put single quotes around JSON string 
var images = JSON.parse('<?=$photosArray?>'); 
+0

不幸的是,沒有工作,正斜槓是仍然是所有逃過一劫。 – waffl 2012-03-14 11:53:48