Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/08/2007, 12:08
yacatl
 
Fecha de Ingreso: septiembre-2002
Ubicación: México
Mensajes: 356
Antigüedad: 21 años, 8 meses
Puntos: 0
De acuerdo Empezando con objetos

Que tal, toda mi vida he programado PHP estructurado, de objetos no tengo ni remota idea en realidad, pero llevo una semana trabajando con PHP-GTK por lo cual deberé iniciar con la POO.

El caso es que tengo unas funciones que muy seguido utilizo y me ayudan bastante para ahorrar tiempo y codigo, ahora las quiero pasar formar parte de una clase y espero puedan ayudarme.

Las funciones reciben parametros para construir un elemento <select> de html, ya sea desde una consulta a base de de datos, como de un arreglo. Ahora mismo los tengo así:

Código PHP:
function impSelectArray($nombre,$extra,$select,$inicial,$arreglo)
{
    echo 
'<select id="'.$nombre.'" name="'.$nombre.'"  '.$extra.' >';
    
    if(
$select == -99)
        echo 
'<option value="-99" SELECTED>'.$inicial.'__</option>';

          
    foreach(
$arreglo as $valor => $etiqueta)
    {
        if(
is_array($select) && in_array($valor,$select))
                echo 
'<option value="'.$valor.'" SELECTED>'.htmlentities($etiqueta).'</option>';    
        else if(
$valor == $select)
            echo 
'<option value="'.$valor.'" SELECTED>'.htmlentities($etiqueta).'</option>';
        else
            echo 
'<option value="'.$valor.'">'.htmlentities($etiqueta).'</option>';
    }
    echo 
"</select>";

ese es el que lo imprime desde un arreglo, el de base de datos es muy parecido, solamente que primero ejecuta el query y despues entra en un ciclo que va llenando los <option>.

Esto que les pongo debajo que tan alejado de la realidad está para convertirlo en clase?

Código PHP:
class comboHtml
{
    public 
$nombre '';
    public 
$id $nombre;
    public 
$extra '';
    public 
$inicial '';
    public 
$slqQuery '';
    public 
$select '';
    public 
$arreglo = array();
    
    public function 
fillFromDataBase($nombre,$qry,$select,$extra,$inicial)
    {
        
$this->nombre $nombre;
        
$this->extra $extra;
        
$this->inicial $inicial;
        
    }
    
    public function 
fillFromArray($nombre,$arreglo,$select,$extra,$inicial)
    {
        
$this->arreglo $arreglo;
        
$this->nombre $nombre;
        
$this->extra $extra;
        
$this->inicial $inicial;
        
        echo 
'<select id="'.$nombre.'" name="'.$nombre.'" '.$extra.' class="navLink">';
    
        if(
$select == -99)
            echo 
'<option value="-99" SELECTED>'.$inicial.'__</option>';
          
        foreach(
$arreglo as $valor => $etiqueta)
        {
            if(
is_array($select) && in_array($valor,$select))
                echo 
'<option value="'.$valor.'" selected>'.htmlentities($etiqueta).'</option>';    
            else if(
$valor == $select)
                echo 
'<option value="'.$valor.'" selected>'.htmlentities($etiqueta).'</option>';
            else
          echo 
'<option value="'.$valor.'">'.htmlentities($etiqueta).'</option>';
        }
        echo 
"</select>";
    }    

De momento estoy intentando hacer funcionar el que los llena desde un arreglo, espero me puedan dar una idea de lo que estoy haciendo mal o bien.

Saludos!!

Última edición por yacatl; 20/08/2007 a las 12:11 Razón: Esto vá en POO. Espero el moderador pueda ayudarme , sé que es una molestia y les ofrezco disculpas.