En busqueda del web 2.0
Como llenar un select (dropdown) con CodeIgniter
En estas semanas pasadas tuve la oportunidad de ver codigo de otros programadores (si o no Zer0s y Wilbur? :d ), bueno ahi puedimos notar la forma en que ellos llenaban un select (dropdown), de una forma un poco extraña, auque en php es valido, pero no si utilizamos CodeIgniter, ya que CodeIgniter nos facilita operaciones como esas.
La forma “correcta” de llenar un select (dropdown) deberia ser la siguiente:
Model:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | class dropdown extends Model{ const TABLA_REGISTROS = 'tabla_x'; //constructor fucntion dropdown(){ parent::Model(); } function llenar_select(){ $query = $this->db->get(self::TABLA_REGISTROS); $data = array(); $data[]='Seleccion un elemento'; //aqui agregamos una opcion sin valor a nuestro select, la cual sera la seleccion por defecto if($query->num_rows()>0){ foreach($query->result_array() as $row){ $data[$row['id']]= $row['nombre']; } return $data; } } } |
Nuestro modelo esta listo, no queremos mas nada, con este método llenamos el select.
Controlador
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class llenarSelect extends Controller{ function llenarSelect(){ parent::Controller(); } function index(){ $data['titulo'] = 'Llenando un Select o DropDown'; $data['registros'] = $this->dropdown->llenar_select(); $this->load->view('view-select',$data); } } |
Nuestro Controlador esta completo.
Vista
La cual es un html cualquiera solo que llamando una funcion de CodeIgniter
1 2 3 4 5 6 7 8 | echo form_open('ruta-procesa')."\n"; echo form_label('Mostrando Select ')."\n"; // y aqui la magia de CI echo form_dropdown('registros',$registros)."\n"; echo form_close(); |
Y creo que eso es todo….



about 9 months ago
Esa es la forma correcta, o más rápida por lo menos. Algunos se confunden al principio por no conocer a fondo CodeIginter.
El primer paso hacia la libertad es el conocimiento.
about 7 months ago
Muy buena informacion!
Ya lo pongo en uso.
Saludos.
Mauricio
about 3 weeks ago
Muy bueno, pero creo que si el resultset lo devuelves como objeto, ( $query->result() ), irá más rápido.. pero no vendrá de aki no ??
about 3 weeks ago
Hola Smart-XY, pues lo uso con array, (array_result), para darle poder hacer que las option en el select venga con el valor y el label.
Saludos y gracias por tu vista