带有新文件夹选项php的下拉列表

带有新文件夹选项php的下拉列表,php,drop-down-menu,options,mkdir,Php,Drop Down Menu,Options,Mkdir,我有这个脚本谁得到所有的子目录,并把他们放到下拉列表。。 我有一个选项“New folder”,他需要通过收集文件夹名称(在本例中是其编号995)来创建一个新文件夹,并将其按1折扣以创建一个名为994的目录 <form action="index.php" method="post"> <select name="folderchoose" id="folderchoose" onchange="this.form.submit();"> <?php $base =

我有这个脚本谁得到所有的子目录,并把他们放到下拉列表。。 我有一个选项“New folder”,他需要通过收集文件夹名称(在本例中是其编号995)来创建一个新文件夹,并将其按1折扣以创建一个名为994的目录

<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  ?>

选择:新建文件夹
目录:
有两件事不能正常工作,mkdir函数不能获取$newbase并自动创建一个名为dir(??)的目录,即使我没有选择“newfolder” 谢谢

您需要将if($\u POST['folderchoose']==0)更改为其他值,因为0表示“null”,因此if语句为true,将执行它

或者。。。例如,使用isset()确保表单确实得到提交

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

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

//do mkdir or something

我有几个提示可以帮助您改进代码。我不完全理解你的问题,但这可能会有所帮助

如果您想列出一个目录及其所有子目录,您应该这样做

function list_directory( $dirname ) {
    foreach file in directory      
        if(is_dir($dirname)){
            list_directory($dirname)
        }
        if(is_File($dirname)){
            echo $dirname;
        }
    }
}
这不是可用的代码,而是供您使用的通用概念

如果开始发生奇怪的事情,试着这样做

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

好的,谢谢!但为什么$newbase与mkdir不兼容呢?