kostenloser Webspace werbefrei: lima-city


Ordner in Drop Down-Listen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    scheune

    scheune hat kostenlosen Webspace.

    Hi,

    ich habe folgendes Problem:

    Ich habe mir ein fertiges Fotoalbum besorgt und auch ein Upload-Skript.
    Das Upload Skript habe ich so umgebaut, dass man in ein Textfeld den Name des Ordners eingeben kann, in welchen die Dateien hochgeladen werden sollen. Nun meine Frage:

    Ist es möglich, und wenn wie, dass ich die Ordner, in welche Daten geladen werden können, auslese und die ausgelesenen Ordner dann in einem Drop Down-Menü ausgebe?

    Please Help
    und danke schonmal im Voraus.

    MfG
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hier ist eine Funktion, die alle Unterordner ausliest und sie in einem Array zurückgibt:
    <?php
    
    function getSubDir($dir) // $dir: Path to folder
    	$folders = array();
    	$handle = opendir($dir);
    	$i = 0;
    
    	// Read all items
    	while(($entry = readdir($handle)) !== false) { 
                   // Exclude special folders
    		if ($entry != '.' && $entry != '..') {
    			// Filter only subfolders...
    			if (is_dir($dir . '/' . $entry)) { 
    				// ... and put them in an array
    				$folders[$i] = $entry; 
    				$i++;
    			}
    		}
    	}
    
    	closedir($handle);
    
           return $folders
    }
    
    ?>
    Um daraus ein Drop Down Menü zu basteln:
    <select name="subdir">
    <?php
    	foreach (getSubDir('path/to/folder') as $folder) {
    		?>
    		<option><?php echo $folder; ?></option>
    		<?php
    	}
    ?>
    </select>
    Ryan

    Beitrag zuletzt geändert: 10.1.2009 16:46:23 von ryanblack
  4. Das kannst du machen, indem du die Verzeichnisse ausliest, und nur die Unterverzeichnisse in ein Array schreibst:

    <?php
    $path ".";
    if($dir=opendir($path))
    {
     while($file=readdir($dir))
     {
      if (is_dir($file))
      {
       $files[]=$file;
      }
     }
    closedir($dir);
    }
    ?>


    Dann kannst du daraus problemlos ein select machen

    <?php
    echo "<select name='verzeichnisse'>";
    foreach($files as $filename){
      echo "<option value='".$filename."'>".$filename."</option>";
    }
    echo "</select>";
    ?>


    @edit: da war einer minimal schneller, und seine Funktion ist auch noch besser:biggrin:

    Gruß, Prog

    Beitrag zuletzt geändert: 10.1.2009 16:35:39 von prog
  5. Autor dieses Themas

    scheune

    scheune hat kostenlosen Webspace.

    @@@@@@@@@@@@@@
    es funktioniert zwar aber eine kleinigkeit is da noch drinne:


    ich habe also die drop down:

    <form action="./upload/upload.php" method="POST">
    <select name="dir_up" title="dir_uP">
    <?php
    	foreach (getSubDir('./album/img/') as $folder) {
    		?>
    
    <option value="<? $folder?>"><?php echo $folder; ?></option>
    
    		
    		<?php
    	}
    ?>
    </select>
    
    <input type="submit" value=" Absenden ">
    </form>


    und hier will ich die auswahl verarbeiten:



    $_POST['dir_up'];
    	$dir_ein = $_POST['dir_up'];
    	$rest = '../album/img/';
    	$img_path_up = $rest.$dir_ein.'/';
    	$path = $img_path_up;



    allerdings gibt es mir folgenden fehler aus:

    Notice: Undefined index: dir_up in C:\Users\rsteininger\XAMPP\xampp\htdocs\upload\upload.php on line 49

    Notice: Undefined index: dir_up in C:\Users\rsteininger\XAMPP\xampp\htdocs\upload\upload.php on line 50


    deshalb kann ich die variable nicht verarbeiten ...

    please help

    Beitrag zuletzt geändert: 10.1.2009 18:00:00 von scheune
  6. scheune schrieb:
    <form action="./upload/upload.php" method="POST">
    <select name="dir_up" title="dir_uP">
    <?php
    	foreach (getSubDir('./album/img/') as $folder) {
    		?>
    
    <option value="<? $folder?>"><?php echo $folder; ?></option>
    
    		
    		<?php
    	}
    ?>
    </select>
    
    <input type="submit" value=" Absenden ">
    </form>

    Du hast das `echo` bei `<option value="">` vergessen. ;)

    Richtig müsste also lauten:
    <option value="<?php echo $folder; ?>"><?php echo $folder; ?></option>


    Ryan

    (Eigentlich könnte man ja das "value" Attribut gleich weglassen...)
  7. Autor dieses Themas

    scheune

    scheune hat kostenlosen Webspace.

    es gibt mir aber immer noch die gleichen fehler aus...
    und es wird daher auch der ordnername nicht übermittelt...
    und das ist mein problem...

    ich will ja mit der auswahl dann weiterarbeiten...


    mfg
  8. Was gibt er dir denn dabei aus?
    echo $_POST['dir_up'];
  9. Bist du dir mit dieser Zeile sicher?

    <form action="./upload/upload.php" method="POST">


    Formel: ./heißt, dass du auf das Stammverzeichniss zurückgehst. Wenn du nur ein Verzeichnis höher willst, so musst du Formel: ../ verwenden.

    Wie gesagt, prüfe mal, ob das Formular überhaupt daten sendet. Zum testen kannst du auch folgendes verwenden:
    <?php
    print_r($_POST);
    ?>

    Das gibt alles aus, was per POST übermittelt wurde

    Gruß, Prog

    Beitrag zuletzt geändert: 10.1.2009 18:47:54 von prog
  10. könnte es am Groß- und Kleinschreibefehler liegen?

    <select name="dir_up" title="dir_uP">


  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!