Foros del Web » Programando para Internet » PHP »

cargar datos de un array en un campo <select>

Estas en el tema de cargar datos de un array en un campo <select> en el foro de PHP en Foros del Web. Hola a todos, Tengo un array que me muestra una lista de archivos contenidos en una carpeta y necesito que estos valores los pueda tomar ...
  #1 (permalink)  
Antiguo 20/01/2009, 15:48
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
cargar datos de un array en un campo <select>

Hola a todos,

Tengo un array que me muestra una lista de archivos contenidos en una carpeta
y necesito que estos valores los pueda tomar en un formulario en un campo <select>, pero no tengo ni idea de como hacer esto...

este el script que logre para leer el array...

Código PHP:
<?
$dir 
"../../../BD/MENU/";
if (
is_dir($dir)) {
    if (
$gd opendir($dir)) {
        while ((
$archivo readdir($gd)) !== false) {
                       if(
$archivo=='.' or $archivo=='..')
            {
            }else{
            echo 
$archivo."<br>";
            }
        }
        
closedir($gd);
    }
}
?>
Gracias por los aportes.

Leonardo
  #2 (permalink)  
Antiguo 20/01/2009, 16:06
Avatar de webness  
Fecha de Ingreso: enero-2009
Ubicación: BOGOTA
Mensajes: 312
Antigüedad: 15 años, 3 meses
Puntos: 5
Respuesta: cargar datos de un array en un campo <select>

Pues bien, supongo que en la linea echo $archivo."<br>"; es el eequivalente a cada uno de los ficheros que quieres mostrar en el <select>

1) si estas haciendo esto en un fichero distinto a donde esta el select, entonces debes de crear un array en vez de un echo, es decir: fuera del ciclo haces $i=0; y en lugar de la impresion haces $arreglo[$i]=$archivo; $i++; y al final del script siendo este una funcion retornas el arreglo return $arreglo;

es decir:
<?php
function getFicheros()
{
$dir = "../../../BD/MENU/";
if (is_dir($dir)) {
if ($gd = opendir($dir)) {
$i=0;
while (($archivo = readdir($gd)) !== false) {
if($archivo=='.' or $archivo=='..')
{
}else{
$arreglo[$i]=$archivo;
$i++;
}
}
closedir($gd);
}
}
retun $arreglo;
}
?>

ahora en el fichero php donde haces el select seria algo como:

<select>
<?php
$ficheros=getFicheros();
for($i=0;$i<count(ficheros);$i++)
echo "<option>".$ficheros[$i]."</option>";
?>
</select>

y ya.

2) si todo lo estas haciendo en el mismo script te recomiendo la primera forma.
  #3 (permalink)  
Antiguo 20/01/2009, 17:37
Avatar de insyse  
Fecha de Ingreso: abril-2005
Ubicación: Colombia
Mensajes: 206
Antigüedad: 19 años
Puntos: 5
Respuesta: cargar datos de un array en un campo <select>

oyeme... perfecto, al principio no me funciono pero revise y tenias un par de errores de los que siempre me salen *retun / return* y *for($i=0;$i<count(ficheros);$i++) / for($i=0;$i<count($ficheros);$i++) * de modo tal que el codigo me quedo así:

Código PHP:

<?
function getFicheros()
{
$dir "../../../BD/MENU/"
if (
is_dir($dir)) { 
if (
$gd opendir($dir)) { 
$i=0;
while ((
$archivo readdir($gd)) !== false) { 
if(
$archivo=='.' or $archivo=='..'

}else{ 
$arreglo[$i]=$archivo;
$i++;


closedir($gd); 


return 
$arreglo;
}
?>

<select>
<?php
$ficheros
=getFicheros();
for(
$i=0;$i<count($ficheros);$i++)
echo 
"<option>".$ficheros[$i]."</option>";
?>
</select>

Mil gracias amigo webness

Última edición por insyse; 20/01/2009 a las 17:49
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 01:26.