2016-04-30 19 views
1

对于filemanagement系统,我用这个变量是,我使用了SCANDIR的文件夹:如何改变变量的内容与POST

$dir = 'uploads/sfm/'.$UserID';

用户可以建立内部的自己的目录$ UserID文件夹。

所有文件都通过foreach输出。 为了赶上一个文件夹形式的“上传”的路径,我用这个:

$Dirname = dirname($dir); 
$Basename = basename($dir); 

可以说我的用户创造了他自己的文件夹中的文件夹“测试”。 我赶上与路径:

$Dirname.'/'.$Basename.'/'.$file;

当我赞同这一点,我得到:

uploads/sfm/5/test

现在我想通过POST改变$ DIR: 这是每个文件夹下面输出我创建了一个表单,并提交时,应该改变。

我现在做这样的:

<form class="chdir" action="" method="post"> 
      <input class="hidden" name="<?php echo $Dirname.'/'.$Basename.'/'.$file; ?>" /> 
      <input type="submit" name="chdir" value="open dir" /> 
     </form> 

而我试图改变这样的目录:

$dir = 'uploads/sfm/'.$UserID; 

if($_POST['chdir']) { 
$NewDirectory = $_POST["$Dirname.'/'.$Basename.'/'.$file;"]; 
$dir = $NewDirectory; 
//echo $dir; 

} 

我知道的语法是错误的,但我希望你明白我试图要实现:$ dir应该包含现在的新值;所以不是这样的: $dir = 'uploads/sfm/'.$UserID';

它现在应该包含这样的:

$dir = 'uploads/sfm/'.$UserID.'/test';

什么是实现这一目标的正确方法是什么?

回答

2

由于没有class="hidden"类HTML,你需要新的目录指定到value of hidden field并添加name成其为

<form class="chdir" action="" method="post"> 
      <input type="hidden" name="new_directory" value="<?php echo $Dirname.'/'.$Basename.'/'.$file; ?>"/> 
      <input type="submit" name="chdir" value="open dir" /> 
     </form> 

并获得新的目录

$dir = 'uploads/sfm/'.$UserID; 
if($_POST['chdir']) { 
$NewDirectory = $_POST['new_directory'];// get your new_directory 
$dir = $NewDirectory; 
//echo $dir; 

} 
+1

不错的答案,我认为这是最好不要定义新变量(Dirname和Pathname)并直接使用$ dir变量? '$ dir。 '/'。 $文件;' – hassan

+0

是的绝对直接使用'$ dir' – Saty

+0

伟大的作品!谢谢 –