2014-01-22 67 views
-1

我想知道是否有人可以幫忙。我無法發現它爲什麼不起作用。我對JS並不瞭解,但邏輯在我腦海中。我只是在拉取指定文件夾的圖像內容(或者在URL中沒有指定默認圖像內容)並將它們依次顯示在img中。PHP生成的JS照片滑塊?

<img src="./img/samples/sample1.jpg" class="gallery_image" name="slideshow_image"> 

<?php 

if($_GET["med"]) 
{ 
    $files = glob('./img/samples/' . $_GET["med"] . '/*.{jpg}', GLOB_BRACE); 
} 
else 
{ 
    $files = glob('./img/samples/*.{jpg}', GLOB_BRACE); 
} 
echo '<script type="text/javascript">'; 
$n = 1; 
foreach($files as $file) 
{ 
    echo 'var image' . $n . ' = new Image();' 
     , 'image' . $n . '.src = "' . $file . '";'; 
    $n++; 
} 
echo 'var step = 1;' 
    , 'function slideit()' 
    , '{' 
    , ' document.images.slideshow_image.src = eval("image"+step+".src");' 
    , ' if(step < ' . $n . ')' 
    , '  step++;' 
    , ' else' 
    , '  step = 1;' 
    , ' setTimeout("slideit()",2500);' 
    , '}' 
    , 'slideit();'; 
?> 

任何幫助將不勝感激。

+1

這是PHP或Javascript的問題嗎?看到呈現的HTML ... –

+0

它的真實代碼會很有用嗎?我不相信.... – voodoo417

回答

0

您正在以最糟糕的方式混合使用HTML,PHP和JavaScript。

當然你可以做這個工作,但是這會花費你很多努力,並且試圖讓它發展將是一個殘酷的痛苦。

您應該定義一個每3種語言的清晰接口,而不是在與HTML代碼交織的PHP腳本中半生成JavaScript代碼。

PHP必須做的是找到要顯示的圖像列表。
JavaScript的工作是爲幻燈片放映設置動畫。
HTML是呈現圖像。

這裏是一個可能的解決方案:

<?php 
// returns a javascript array initializer 
function slideshow_files ($dir) 
{ 
    $dir = $dir ? "/".$dir : ""; 
    $files = glob('./img/samples' . $dir . '/*.{jpg}', GLOB_BRACE); 
    return "[".implode (',', $files)."]"; 
} 
?> 
<head> 
<script> 
// an anonymous function to avoid polluting global context 
(function() { 

    // get your image list from PHP 
    var imgs = <?= slideshow_files ($_GET["med"]); ?>; 

    // preload images 
    var image = []; 
    for (var i = 0 ; i != slide_image.length ; i++) 
    { 
     image[i] = new Image; 
     image[i].src = img[i]; 
    } 

    // launch your slideshow 
    var step = 0; 
    slide(); 

    // slideshow timer proc 
    function slide() 
    { 
     document.images.slideshow_image.src = image[step].src; 
     step = (step+1) % image.length; 
     setTimeout(slide, 2500); 
    } 
})(); 
</script> 
</head> 
<body> 
<img src="./img/samples/sample1.jpg" class="gallery_image" name="slideshow_image"> 
</body> 

不用說了,你就不能寫東西比較複雜的,如果你一直傾你所有的代碼放到一個大的HTML文件。