2012-03-12 15 views
0

私はbackstretchを使って、ワードプレスページで定義された画像を使ってフルスクリーンのバックグラウンドスライドショーを作成しています。jQuery Backstretch - php配列をjavascriptに渡す際の問題?

各画像のsrcを配列に出力できる関数を記述しました。現在

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" 
    ]; 

:しかし、私は原因スラッシュなどにおそらくjavascriptの、またはに文字列をJavaScriptで解析される方法を、このPHPの配列を渡すの問題に遭遇しています

バックストレッチはそうのような画像の配列が必要です、私はURLENCODE、その後、json_encodeしようとしていますが、動作していないよう:

$写真が[0]のような画像のURLです
$photos = get_post_images(); 
$photosArray = array(); 

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

$photosArray = json_encode($photosArray); 

JavaScriptでは次に

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

エラーを与えるthis stackoverflow questionによって推奨されているように:

Uncaught SyntaxError: Unexpected token h 

その後、私は単純に配列を渡してみたが、それは常にスラッシュエスケープされています

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

解決方法をお勧めする人はいますか?

ありがとうございました!

答えて

0

変数をPHPで文字列としてビルドして、javascriptでエコーしました。私が最も理想的な解決策を検討したが、他の解決策はないように見えたようですません:JavaScriptで次に

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

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

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

残念ながら動作しませんでしたこと、スラッシュはすべて残っていますエスケープ。 – waffl

関連する問題