0

私は、データベース内のすべての画像をループしてサムネイルとして表示する漫画のWebサイトを持っています。ユーザーは、これらの画像の1つをクリックして、viewcomic.phpテンプレートに通常のサイズで表示できます。

ユーザーが左右の矢印を押して画像をナビゲートできるようにしたいと思います。

viewcomic.phpには、次のjavascriptがあります。これは、phpをコメントアウトしたときにのみ実行されます。

     //so if I comment out this line, it will run fine 
var imgArray = [<?php echo implode(',', getImages()) ?>];

$(document).ready(function() {
    var img = document.getElementById("theImage");
    alert("run");
    var imgIndex = 0;
    $(document).keydown(function (e) {
        if (e.which == 39) {
            alert("next image");
            img.src = imgArray[imgIndex++]
        }

    });
}); 

firebugで、次のエラーが発生します。

invalid regular expression flag a
[Break On This Error]   

参照先:

 var imgArray = [/images/all_comics/'Number_1.jpg',/images/all_comics/'Number_2.j...

しかし、Firebugは、imgArrayがjscriptで読み取り可能な文字列で適切に埋められているように見えることを示しています。

 var imgArray = [/images/all_comics/'Number_1.jpg',/images/all_comics/'Number_2.jpg',/images/all_comics/'Number_3.jpg',/images/all_comics/'Number_4.jpg',/images/all_comics/'Number_5.jpg'];

任意のアイデアをいただければ幸いです!

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

4

4 に答える 4

1

たとえば、次のように、文字列に引用符を追加する必要があります。

var imgArray = ['<?php echo implode("','", getImages()) ?>'];

別の可能性は、jsonを使用することです。

var imgArray = <?php echo json_encode(getImages())?>;
于 2012-10-12T19:05:31.873 に答える
1

変化する

var imgArray = [<?php echo implode(',', getImages()) ?>];

var imgArray = ["<?php echo implode('","', getImages()) ?>"];
于 2012-10-12T19:05:39.987 に答える
1

このgetImages()関数は文字列を引用しようとしているようですが、完全なパスではなく、ファイル名のみを引用しています。

/images/all_comics/'Number_1.jpg'

対。

'/images/all_comics/Number_1.jpg'

これにより、[]宣言の構文が正しくなくなります。

于 2012-10-12T19:06:06.237 に答える
1

Firebugエラーが示すように、配列値は不完全に引用されているため、正規表現の区切り文字であるスラッシュのために、それらを誤った正規表現として解析します。

それ以外の

/images/all_comics/'Number_1.jpg'

値全体を次のように引用する必要があります

'/images/all_comics/Number_1.jpg'

于 2012-10-12T19:16:24.367 に答える