CodeIgniter Forums
2 column table to form_dropdown array - Printable Version

+- CodeIgniter Forums (https://forum.codeigniter.com)
+-- Forum: Archived Discussions (https://forum.codeigniter.com/forumdisplay.php?fid=20)
+--- Forum: Archived Development & Programming (https://forum.codeigniter.com/forumdisplay.php?fid=23)
+--- Thread: 2 column table to form_dropdown array (/showthread.php?tid=54716)



2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]chris...[/eluser]
I have a simple 2 column table

Code:
ID name
1  Bay-1
2  Bay-2
3  Admin
etc

Id like to enter this into an array for use in form_dropdown() so i get this result

Code:
<option value="1">Bay-1</option>
<option value="2">Bay-2</option>
<option value="2">Admin</option>

Is there a simplified way to do this?


2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]malzahar[/eluser]
Something like this may work.

In your model:
Code:
function get_names() {
   $names= array();
   $query = $this->db->get('table_name');
   if($query->num_rows() > 0) {
      foreach($query->result_array() as $name) {
         $names[] = $name;
      }
   }
   $query->free_result();
   return $names;
}

Your controller:
Code:
$this->load->model('model_name');
$data['names'] = $this->Model_Name->get_names();
$this->load->view('view_name', $data);

Your view:
Code:
foreach($names as $name) {
   echo "<option value='{$name['id']}'>{$name['name'}</option>";
}



2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]chris...[/eluser]
Not what I had in mind, I do the same thing a bit differently in order to keep the view clean and use the helper form_dropdown() main difference is my model contains this

Code:
$names[$name['id']] = $name['name'];



2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]malzahar[/eluser]
In that case once you create the $names array in the model and pass it to the view you can just load it into the form helper.

Code:
echo form_dropdown('dropdown_name', $names, 'selected_value');



2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]malzahar[/eluser]
deleted comment

Nevermind that should amount to the same thing had a brain fart there.


2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]chris...[/eluser]
its a 'key' => 'value' array


2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]malzahar[/eluser]
Once you have that associative array though you should be able to just pass it to the form_dropdown() function as described above.


2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]chris...[/eluser]
yeah was just wonder if there was an easy way to just get the data from the database in that format
where can i read up on how many-to-one relational tables are done in codeignighter
or do I code them manually with sql commands?


2 column table to form_dropdown array - El Forum - 09-21-2012

[eluser]CroNiX[/eluser]
Nope, even using straight php/mysql you have to loop over it to get it in that format.

I just create a helper, array_to_dropdown($array, $key_field, $value_field, $default_value), where I can pass it the database result array (or any array), the field I want to use for the 'id' index, the key for the 'text' part, and an optional default first value, and it loops over the array creating the new desired array and returning it.


2 column table to form_dropdown array - El Forum - 09-22-2012

[eluser]chris...[/eluser]
no problem, all done, made my own function