2013-02-10 57 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>"; 
} 
相关问题