I am trying to pass the array to the view page and put the items in a listbox/dropdown. Where am I going wrong in this code?
Model
public function get_suppliers(){
$type = "SUPPLIER";
$this->db->where('usertype', $type);
$query = $this->db->get('users');
foreach ($query->result() as $row){
$results = array(
'userid' => $row->userid,
'firstname' => $row->firstname,
'lastname' => $row->lastname,
'company' => $row->company
);
}
return $results;
}
Controller
$this->load->model('user_model');
$data['supplier']= $this->user_model->get_suppliers();
$this->load->view('include/header.php');
$this->load->view('addvehicle_view', $data);
$this->load->view('include/footer.php');
View
<?php
if(isset($supplier)){
foreach ($supplier as $info){
echo'<option value="' . $info->userid . '">' . $info->company . ' - ' . $info->lastname . ', ' . $info->firstname . '</option>';
}
}
?>
In get_suppliers()
:
$results = array(); // just in case there is no record
foreach (...) {
$results[] = array( // you forgot the "[]"
...
);
}
Another issue: your model (once fixed) returns an array of arrays, whereas your view expects an array of objects.
Straight to the point, here's your new sexy model method:
public function get_suppliers() {
return $this->db
->where('usertype', 'SUPPLIER')
->get('users')
->result();
}
public function get_suppliers(){
$type = "SUPPLIER";
$this->db->where('usertype', $type);
$query = $this->db->get('users');
$results = array();
foreach ($query->result() as $row){
$results[] = array(
'userid' => $row->userid,
'firstname' => $row->firstname,
'lastname' => $row->lastname,
'company' => $row->company
);
}
return $results;
}