I am new in codeIgniter and I having a bit of trouble with my database and dropdown menu.
Here is my function to get the information I need...
protected $tbl_name = 'club';
public function get($id = 0, $object = TRUE)
{
// select * from users where id = 0
// check if id is provided
if($id) {
// id provided - retrieve a specific user
$query = $this->db->get_where($this->tbl_name, array('id' => $id));
// check if object type is requested
if($object) {
// object is requested
$data = $query->row();
}
else {
// array is requested
$data = $query->row_array();
}
}
else {
// id not provided - retrieve all users
$query = $this->db->get($this->tbl_name);
// check if object type is requested
if($object) {
// object is requested
$data = $query->result();
}
else {
// array is requested
$data = $query->result_array();
}
}
return $data;
}
Here is where I call it in my controller
$data['clubname'] = $this->club_model->get();
and this is in my view for the dropdown
<tr>
<td>
<?php echo form_label('Club Name: ', 'clubname'); ?>
</td>
<td>
<?php echo form_dropdown('clubname', $clubname['name']); ?>
</td>
<td>
<?php echo form_error('clubname'); ?>
</td>
</tr>
but I get these errors
A PHP Error was encountered
Severity: Notice
Message: Undefined index: name
Filename: individual/individual_club.php
Line Number: 7
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: helpers/form_helper.php
Line Number: 331
What Am I doing wrong?
The problem lies in your form_dropdown('clubname', $clubname['name'])
call. The second parameter is wrong. form_dropdown
expects an array. See the documentaiton
From your query's results, you would need to build an array of clubs. Something along the lines of :
// array is requested
$data = array();
foreach ($query->result_array() as $row)
{
$data[$row['club_id']] = $row['club_name'];
}
Replace club_id
and club_name
with your table's column names for the name and id of the clubs. After that, change your form_dropdown
to form_dropdown('clubname', $clubname)
.
Like this, $clubname
is an array of clubs.
Hope this helps!