Reputation: 495
I am trying to populate a dropdown menu on an events page with a list of locations.
What I wish to do is retrieve all names from a locations table, store them in an array in my event.php controller, pass this to a view which then lists all the locations in a dropdown menu.
Here is the loop in my controller which retrieves the locations..
$result = $this->locationModel->get_locations_list();
$arr[] = '';
foreach ($result as $val)
$arr[$val->id] = $val->name;
I am already passing a variable to my view called $data like so - $this->template->load('admin/template', 'admin/eventEdit', $data);
I have tried passing the $arr variable and the $data array in the above line but this stops the view from rendering.
Please could someone guide me on how to pass the information that is stored in the $arr variable to my view along with the $data variable.
Thanks
Dan
Thanks Dan
New Code
Controller
foreach ($result as $val){ $arr[$val->id] = $val->id; }
$data['navarr'] = $arr;
View
<?php foreach($navarr as $value) { $html .= '<option value="'.$value['id'].'">'.$value['name'].'</option>'; } echo $html; ?>
Upvotes: 2
Views: 13978
Reputation: 28883
You need to say
$data['navarr'] = $arr;
And then in the view you will have a variable called navarr
to use which will be the array.
Change your controller code to
// I assume you want $val->id and $val->name
foreach ($result as $val){ $arr[$val->id] = $val->name; }
$data['navarr'] = $arr;
Assuming I'm reading your code correctly, you need to extract the key / value pairs from the array like so:
<?php
foreach($navarr as $key => $value)
{
?>
<option value="<?php echo $key; ?>"><?php echo $value; ?></option>
<?php
}
?>
Upvotes: 4