Dan C
Dan C

Reputation: 495

Codeigniter - passing multiple data arrays to a view?

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

Answers (1)

Josh K
Josh K

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

Related Questions