使用php列出目录文件

时间:2011-12-02 23:39:50

标签: php directory

我有一个脚本,它会将服务器上图像文件夹中的所有文件列入下拉框。

$dir='images'; 

$list=scandir($dir);

if(isset($_POST['submit'])) echo 'Selected: ' . $_POST['image'];

    foreach($list as $file)
    {
        //ignore . (current dir) and .. (parent dir)
        if($file!=='.'&&$file!=='..')
        {
            echo "<option value=\"$file\"";
           if(isset($_POST['submit'])&&$_POST['image']==$file) echo 'selected="selected"';
            echo ">$file</option>";
        }
    }

我想要做的是选择图像的文件名时显示图像。

 echo "<img src='images/". $file ."' />";

我尝试使用文件可处理但它只接缝显示目录中的最后一个图像。我该如何解决这个问题。

2 个答案:

答案 0 :(得分:1)

您必须使用Javascript执行此操作。加载php脚本后,无法知道用户窗口中发生了什么。您将希望为onChange甚至您的选项组创建一个事件监听器。当选择更改时,您将需要替换用于显示预览的图像标记的src。

我强烈建议使用Jquery或simliar等JS库来帮助事件监听和dom操作。

答案 1 :(得分:0)

如果你的意思是在表单加载上这样做,我会说替换

if(isset($_POST['submit'])&&$_POST['image']==$file) echo 'selected="selected"';

if(isset($_POST['submit'])&&$_POST['image']==$file)
{
    echo 'selected="selected"';
    $selected_file = $file;
}

然后改为

echo "<img src='images/". $selected_file ."' />";

因为此刻,它只会加载foreach

中的最后一个