Ver Mensaje Individual
  #4 (permalink)  
Antiguo 25/10/2006, 08:52
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Pues para empezar puedes realmente romper tu "clase" en una clase con mas propiedades y metodos.

Código PHP:
class ComboBox {
      private 
$tabla;
      private 
$opcion;
      private 
$valor;
      private 
$datosCombo;

      public function 
__construct$tabla$opcion$valor ) {
            
$this->tabla $tabla;
            
$this->opcion $opcion;
            
$this->valor $valor;
            
$this->datosCombo = array();
      }

      public function 
setTabla$tabla ) {
            
$this->tabla $tabla;
      }

      public function 
getTabla() {
            return 
$this->tabla;
      }

      
// Aqui faltarian mas "setters" y "getters"

      
public function loadData() {          
             
$sql "SELECT * FROM " $this->table;
             
             
$conexion = new Conexion();
             
$conexion->Query$sql );
             
$data = array();
             while( 
$row $conexion->fetchRow() ) {
                   
// Aqui suponemos que tenemos dos valores del query
                   
$data[$row[0]] = $row[1];
             }
             
             
$this->datosCombo $data;
      }

      public function 
dibujaCombo() {
             
$html "<select name=\"%s\" class=\"botones\">%s</select>";
             
$opciones = array();
             
$opHTML "<option value=\"%s\"%s>%s</option>";
             foreach( 
$this->datosCombo as $value => $option ) {
                    
$selected '';
                    if( 
$value == $this->value $selected ' selected="';
                    
                    
$opciones[] = sprintf$opHTML$value$selected$option );
             }

              return 
sprintf$html$this->tableimplode"\n"$opciones ) );
      }

      public function 
__toString() {
             return 
$this->dibujaCombo();
      }

y lo puedes usar asi:
Código PHP:
$combo = new ComboBox"listas""producto""id_producto" );
$combo->loadData();
echo 
$combo// Esto llama el metodo de __toString()