2012-10-12 57 views
0

我有一個漫遊網站,它通過數據庫中的所有圖像進行循環顯示並以縮略圖顯示。用戶可以點擊其中一個圖像在viewcomic.php模板上以正常大小查看它。Javascript未與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++] 
     } 

    }); 
}); 

螢火蟲,我發現了以下錯誤:

invalid regular expression flag a 
[Break On This Error] 

參考:

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

但是,螢火顯示,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']; 

任何想法將不勝感激!

謝謝!

+2

儘量引用您的數組值。 – budwiser

+0

@budwiser他們被引用。這是來自螢火蟲的輸出: var imgArray = [/images/all_comics/'Number_1.jpg',... – Growler

+1

它們被引用錯誤,引號需要遍歷完整路徑,而不是圍繞文件名:'' /圖像/ all_comics /數_1。jpg'' –

回答

1

由於Firebug錯誤狀態,因爲您的數組值被不完整引用,它將它們解析爲錯誤的正則表達式,因爲斜槓是正則表達式分隔符。

而不是

/images/all_comics/'Number_1.jpg'

你需要引用整個價值

'/images/all_comics/Number_1.jpg'

1

需要引號添加到您的字符串,比如像:

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

另一種可能性是使用JSON:

var imgArray = <?php echo json_encode(getImages())?>; 
1

變化

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

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

getImages()功能似乎試圖引用字符串,但它僅報價文件名,而不是完整的路徑:

/images/all_comics/'Number_1.jpg' 

'/images/all_comics/Number_1.jpg' 

這導致了不正確的語法在[]聲明。

+0

謝謝!該死的微不足道的引用問題:/ – Growler