2011-09-15 10 views
1

このスクリプトでは、すべてのサブディレクトリを取得してドロップダウンリストに入れます。 フォルダ名を収集して新しいフォルダを作成する必要がある「新規フォルダ」オプションがあります995のようなこの場合は、その番号 - と物事が正常に動作していない 新しいフォルダオプションのドロップダウンリストphp

<form action="index.php" method="post"> 
<select name="folderchoose" id="folderchoose" onchange="this.form.submit();"> 
<?php 
$base = basename("$items[1]", ".php").PHP_EOL; 
$newbase = $base -1; 
if($_POST['folderchoose']==0){ mkdir("../albums/$newbase", 0700); } 
$items = glob("../albums/*", GLOB_ONLYDIR); 
natsort($items); 
{?><option>select:</option><? 
    foreach($items as $item) 
    { 
     ?> <option value="1"><? echo "$item\n "; ?></option><? 
     } ?> <option value="0" >New folder</option> <? 
    } 
?> 
</select> 
</form> 
Directory:<?php echo $_POST[folderchoose] ?><br /> 
<?php $base = basename("$items[1]", ".php").PHP_EOL; 
$newbase = $base -1; 
echo $newbase ?> 
と呼ばれるディレクトリを作成するには1で、それを割り引く、は、mkdir関数は、$ newbaseを取得し、DIR(というディレクトリを作成していけません? ) '新しいフォルダ'を選択していなくても自動的に ありがとう

答えて

1

のために私はあなたのコードを改善するためのヒントがいくつかあり、フォームが実際に提出され得ることを確認します。私はあなたの問題を完全に理解していませんが、これが役立つかもしれません。あなたはそのサブディレクトリのすべてのディレクトリを一覧表示したい場合は

あなたはこの

function list_directory($dirname) { 
    foreach file in directory  
     if(is_dir($dirname)){ 
      list_directory($dirname) 
     } 
     if(is_File($dirname)){ 
      echo $dirname; 
     } 
    } 
} 

これは、使用可能なコードが、あなたはで動作するためgenral考えではないような何かを行う必要があります。

奇妙なことは、この

var_dump($var); // The variable your are suspecting in your case $newbase 
+0

私はこのコードからもっと簡単なglobに行きました。ありがとう.. – Elad

1

if($ _ POST ['folderchoose'] == 0)は何かに他のものがあるので、0は "null"を意味するので、if文は真で実行されます。

か...使用ISSET()の例

if (isset($_POST['folderchoose'])) { 

if ($_POST['folderchoose'] == 0) { 

//do mkdir or something 
+0

OK感謝をやってみてください起こって起動した場合は!なぜ$ newbaseがmkdirとうまくいっていないのですか? – Elad

関連する問題