Foros del Web » Programando para Internet » PHP »

Listar directorio en lista despegable

Estas en el tema de Listar directorio en lista despegable en el foro de PHP en Foros del Web. Hola Pretendia usar un script para listar el contenido de un directorio en una lista despeglable. Intente usar este : Código: <? function listar() { ...
  #1 (permalink)  
Antiguo 06/01/2011, 05:20
 
Fecha de Ingreso: julio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Listar directorio en lista despegable

Hola
Pretendia usar un script para listar el contenido de un directorio en una lista despeglable.
Intente usar este :
Código:
<?
function listar()
{
echo '<select name="lista">';
$dir = opendir("./");
while($listar_d = readdir($dir))
{
if ($listar_d[0] != "." && $listar_d[0] != ".." )
{
echo "<option value=$listar_d>$listar_d</option>";
}
}
echo '</select>';
closedir($dir);
}
echo '<form method="post" action="">';
listar();
echo '</form>';
?>
Me me dan varios errores.
Primero sin que lista los ficheros pero no enlaza a los mismos.
Queria preguntarvos tambien se existe la posibilidad de excluir un fichero de esa lista y de quitar la extencion de los ficheros.
Gracias
  #2 (permalink)  
Antiguo 07/01/2011, 04:51
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Listar directorio en lista despegable

No puedes vincular dentro de un select con la etiqueta <a> pero puedes hacer algo así, espero que sirva:

Código PHP:
<?

error_reporting
(E_ALL);
ini_set("display_errors"1);
function 
listar()
{
    
$quitar_extension = array(".txt"".php"); //Extensiones a quitar
    
$saltar_archivo false;
    echo 
'<select name="lista">';
    
$dir opendir("./");
    
    while(
$listar_d readdir($dir))
    {

        if (
$listar_d[0] != "." && $listar_d[0] != "..")
        {
            if(
is_file($listar_d)){
                foreach (
$quitar_extension as $extension){
                    if(
strstr($listar_d$extension)) $saltar_archivo true;
                }
                if(
$saltar_archivo){
                    
$saltar_archivo false;
                    continue;
                } else {
                    echo 
"<option onclick='form.submit();' value=$listar_d>$listar_d</option>";
                }
                
//echo "<option value=$listar_d>$listar_d</option>";
            
}
        else { 
//Es directorio
            
echo "<option onclick='form.submit();' value=$listar_d>$listar_d</option>";
        }
        }
        

    }
    echo 
'</select>';
    
closedir($dir);
}

echo 
'<form method="post" action="'.$_SERVER['PHP_SELF'].'?send">';
listar();
echo 
'</form>';
if(isset(
$_GET['send'])){
    echo 
"Has seleccionado ".$_POST['lista']."";
}
?>
  #3 (permalink)  
Antiguo 08/01/2011, 03:03
 
Fecha de Ingreso: julio-2009
Mensajes: 10
Antigüedad: 14 años, 9 meses
Puntos: 0
Respuesta: Listar directorio en lista despegable

Algo es algo, lo que me gustaria era que abriera los ficheros, porque la ide es poner este menu en todas las paginas con la funcion include y de esta forma tener listado todos los escudos
  #4 (permalink)  
Antiguo 09/01/2011, 04:14
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Listar directorio en lista despegable

Si los quieres vincular has de montar una tabla con etiquetas a, pero puedes utilizar el script anterior, para incluir los archivos modificas y haces algo así:

antes:

Código PHP:
if(isset($_GET['send'])){
    echo 
"Has seleccionado ".$_POST['lista']."";

para incluir:

Código PHP:
if(isset($_GET['send'])){
    
inlcude(".$_POST['lista'].");

Saludos
  #5 (permalink)  
Antiguo 10/07/2012, 11:03
 
Fecha de Ingreso: julio-2012
Mensajes: 5
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Listar directorio en lista despegable

Hay posibilidad de capturar el archivo seleccionado para copiarlo a otro directorio?

Un saludo.

Etiquetas: directorio, lista, listar
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:20.