Skip to content

Instantly share code, notes, and snippets.

@131digital
Created March 29, 2014 17:25
Show Gist options
  • Save 131digital/9858503 to your computer and use it in GitHub Desktop.
Save 131digital/9858503 to your computer and use it in GitHub Desktop.
Codeigniter - Populate multi select dropdown from database
<?php
// put in controller
$vendor_categories = $this->vendor_category_model->get_many_by('vendorid',$id);
// get the category the vendor belongs to
$vendorcat = array();
foreach($vendor_categories as $vendor_category => $value){
$vendorcat[$value->categoryid] = $value->categoryid;
}
//data array for view
$data['$vendorcat'] = $vendorcat;
$data['categories'] = "categories from database here";
// put in view
?>
<div class="form-group">
<label class="control-label">Categories</label>
<div class="controls">
<select name="categoryid[]" multiple id="categoryid">
<?php foreach($categories as $category):?>
<?php $selected = in_array($category->id,$vendorcat) ? " selected " : null;?>
<option value="<?=$category->id?>"
<?=$selected?> ><?=$category->name?>
</option>
<?php endforeach?>
</select>
</div>
</div>
@imamjnn
Copy link

imamjnn commented Jan 23, 2017

Thanks

Copy link

ghost commented Mar 25, 2019

Thank you, It works !!

@gityuvaraj
Copy link

Thanks a lot

@mckaygerhard
Copy link

this is waste of time! more easy:

on controller:

$vendor_categories  = $this->vendor_category_model->get_many_by('vendorid',$id);
$vendorcat = array();
foreach($vendor_categories as $vendor_category => $value){
    $vendorcat[$value->categoryid] = $value->categoryid;
}   
$categories  = $this->vendor_category_model->get_many(); // in form of array('key->value) par
$data['$vendorcat'] = $vendorcat;
$data['categories'] = $categories;

on view:

form_dropdown('categoryid[]',$categories,$vendorcat);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment