2013-02-10 44 views
2

我想遍歷一個目錄並顯示裏面的所有圖片。我得到它的工作,直到我說jQuery的/ AJAX入公式..不知怎的,路徑相處的方式複製,所以我得到這個錯誤(你可以看到它被複制):DirectoryIterator()以某種方式複製路徑

Fatal error: Uncaught exception 'UnexpectedValueException' with message 'DirectoryIterator::__construct(images/gallery/album1,images/gallery/album1) [<a href='directoryiterator.--construct'>directoryiterator.--construct</a>]: The system cannot find the path specified

我不能爲我的生命弄清楚爲什麼它是走出這樣的... contruct(images/gallery/album1,images/gallery/album1)應該construct(images/gallery/album1)

PHP:

$album = $_POST['album']; 
$dir = new DirectoryIterator("images/gallery/$album"); 
foreach ($dir as $fileInfo) 
{ 
    if($fileInfo->isDot()) continue; 
    $pic = $fileInfo->getFilename(); 
    print "<div> 
      <img src='images/gallery/$album/$pic'> 
      </div>"; 
} 

的Jquery/AJAX:

function albumChosen(id) 
{ 
var id = id; 
var album = $('a[id="'+id+'"]').attr("rel"); 
$.ajax({ 
    url: "PHPscripts/getAlbums.php", 
    type: "POST", 
    data: {'album' : album}, 
    success: function(data){ 
     $('#galleryList').html(data); 
    } 
}); 
return false; 

}

如果我alert(album);它顯示 'album1' 正確。所以它是與它如何從$_POST

編輯閱讀它: 我添加的代碼提示..

$album = $_POST['album']; 
print_r($_POST); 
var_dump($album); 
$dir = new DirectoryIterator("images/gallery/$album"); 
//rest of code... 

print_r($_POST)打印出Array ([album] => album1)
var_dump($album)打印出string 'album1' (length=6)

+0

看來'$ _ POST [「專輯」]'包含一個錯誤的值,比如「album1,圖片/相冊/ album1」 – 2013-02-10 07:12:02

+0

根據螢火蟲,在POST選項卡下只發送「album1」喜歡它應該。 – Jmh2013 2013-02-10 07:19:36

+0

你應該在作業之後嘗試'print_r($ _ POST)'和'var_dump($ album)',以避開一些光線。 – bodo 2013-02-10 09:17:20

回答

0

匝我只需要將../添加到我的路徑前面。如果它沒有按照它的方式複製路徑,我可能已經很快就知道了這一點,但是因爲我沒有認爲路徑有什麼問題。所以這裏是完整的代碼,再次加入的是路徑前面的../

$album = $_POST['album']; 
$dir = new DirectoryIterator("../images/gallery/$album"); 
foreach ($dir as $fileInfo) 
{ 
    if($fileInfo->isDot()) continue; 
    $pic = $fileInfo->getFilename(); 

    print "<div> 
       <img src='images/gallery/$album/$pic'> 
      </div>"; 
}