2011-12-02 45 views
0

我有一个脚本,它将列出服务器上图像文件夹中的所有文件到下拉框中。用php列出目录文件

$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 ."' />"; 

我试过使用文件verable,但它只接缝显示目录中的最后一张图片。我将如何去解决这个问题。

+1

您的意思是说,当用户更改该值时,然后使用JavaScript提交表单或立即提交表单? –

回答

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

1

你将不得不用Javascript来做到这一点。一旦php脚本加载它没有人知道用户窗口中发生了什么。您将希望创建一个事件监听器,甚至是您的选项组的onChange。而当选择更改时,您将需要替换用于显示预览的图像标记的src。

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

+1

http://api.jquery.com/change/所示的示例是一个很好的起点,可以根据您的需要轻松更改。 – Bruce