Foros del Web » Programando para Internet » PHP »

[Aporte] Cargador de selects

Estas en el tema de [Aporte] Cargador de selects en el foro de PHP en Foros del Web. Buenas tardes a todos. Me encuentro trabajando en un proyecto que requiere la carga de una cantidad importante de selects. Al ser un proyecto dinamico ...
  #1 (permalink)  
Antiguo 05/05/2010, 11:45
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años, 8 meses
Puntos: 2
[Aporte] Cargador de selects

Buenas tardes a todos.

Me encuentro trabajando en un proyecto que requiere la carga de una cantidad importante de selects. Al ser un proyecto dinamico y en expansion, he dedicido dedicar unos minutos a crear una funcion para cargar selects con valores obtenidos de una base de datos.

Como digo siempre, seguro que se puede mejorar y añadir funcionalidades o quitar limitaciones. Escucho.

Les dejo el script:

Código PHP:
function CargarSelect($tabla$campos$nombre_select$seleccionar$ordenar_por)
{
    
/*
        Script desarrollado por Julisho.
        
        Esta funcion carga un select con valores obtenidos de una base de datos, de acuerdo a los parametros especificados.
            
        $tabla                Es el nombre de la tabla de la cual se obtendran los datos
        $campos                Son los campos que se obtendran de la tabla. Si se requiere mas de un campo, se deben separar con el caracter "|"
        $nombre_select        Es el nombre que tendra el atributo name
        $seleccionar        Es el valor para seleccionar por defecto <option value="1" selected>Primero</option>
        $ordenar_por        Campo por el cual se ordenaran los resultados de la consulta
        $clase_select        Atributo class
        $id_select            Atributo id
            
        Valores devueltos:    $salida        contiene el codigo del select
            
        NOTA: Actualmente, solo se admiten dos campos para el valor $campos.
            
        Modo de uso:    echo cargarselect("provincias", "id|provincia", "idProvincia", 46, "provincia", "clase", "id");
    */
    
$mysql = new cMysql();
    
$mysql->Conectar();
    if (
strpos($campos"|") !== false)
    {
        
$CAMPOS explode("|"$campos);
        
$query 'select ';
        for (
$indice 0$indice count($CAMPOS); $indice++)
        {
            if (
$indice 0) { $query .= ', '; }
            
$query .= $CAMPOS[$indice];
        }
        
$query .= ' from ' $tabla ' order by ' $ordenar_por;
    }
    else { 
$query 'select ' $campos ' from ' $tabla ' order by ' $ordenar_por; }
        
        
    
$consulta $mysql->Consulta($query);
    if (!
$consulta) { $salida '<div id="error">No es posible cargar las opciones. Recargue la pagina.</div>'; }
    else
    {
        
$salida '<select name="'.$nombre_select.'"';
        if (!empty(
$id_select)) { $salida .= ' id="' $id_select '"'; }
        if (!empty(
$clase_select)) { $salida .= ' class="' $clase_select '"'; }
        
$salida .= '>'."\n";

        while (
$resultado mysql_fetch_array($consultaMYSQL_NUM))
        {
            
$salida .= '<option value="'.$resultado[0].'"';
            if (
$seleccionar == $resultado[0]) { $salida .= ' selected'; }
            
$salida .= '>'.$resultado[1].'</option>' "\n";
        }
        
$salida .= '</select>' "\n";
    }
    
$mysql->Desconectar();
    return 
$salida;

Espero que le sea de utilidad a alguien.

Hasta la proxima.

Última edición por 7sistemas; 05/05/2010 a las 12:03 Razón: Añadir clase e id a los parametros
  #2 (permalink)  
Antiguo 05/05/2010, 11:48
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 2 meses
Puntos: 334
Respuesta: [Aporte] Cargador de selects

podrias usar funciones nativas de php en ves de la class cMysql (que no esta incluida en tu aporte) asi todos podran usarlo =)
por lo demas...
buen aporte
__________________
More about me...
~ @rhyudek1
~ Github

Etiquetas: cargador, selects, aportes
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:13.