问题
Im trying to populate a dropdown box on a registraton form in code igniter but i have had not luck below are snippets from my contorller, model, and view. Base is the drop down field.
Model
function get_airports()
{
$this->db->select('airport_code, airport_name');
$this->db->order_by('airport_code', "asc");
$query = $this->db->get('airports');
if($query){
$query = $query->result_array();
return $query;
}
}
}return $data
}
function create_member()
{
$new_member_insert_data = array('first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name'),
'email_address'=> $this->input->post('email_address'),
'username'=> $this->input->post('username'),
'password'=> md5($this->input->post('password')),
'birthdate'=> $this->input->post('birthdate'),
'base'=> $this->input->post('base')
);
$insert = $this->db->insert('membership', $new_member_insert_data);
return $insert;
}
} ?>
View
$airports = $this->get_airports(true,'Please Select');
$selected = set_my_defaults('airport',$default);
echo form_dropdown('base', set_value('base', $airports, $selected, 'class="dropdown_style"'));
View 2 Bases i made this a sperate view and included it in the main registration form
<select>
<?php
foreach($myDropdown as $dd)
echo "<option value='". $dd['your_field'] ."'>". $dd['your_field'] ."</option>";
?>
</select>
controller
function getairport(){
$query = $this->membership_model->get_airports();
if($query)
{
$data['main_content'] = 'base';
$this->load->view('base', $data);
}
}
function create_member()
{
$this->load->library('form_validation');
//fieldname, error messaage, validation rules
$this->form_validation->set_rules('first_name', 'Name', 'trim|required');
$this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
$this->form_validation->set_rules('email_address', 'Email', 'trim|required|valid_email');
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]');
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
$this->form_validation->set_rules('password2', 'Password Confirmation', 'trim|required|matches[password]');
$this->form_validation->set_rules('birthdate', 'Birthdate', 'trim|required|');
$this->form_validation->set_rules('base', 'Base', 'trim|required');
if($this->form_validation->run()== FALSE)
{
回答1:
Your format should be like this:
$options = array(
'small' => 'Small Shirt',
'med' => 'Medium Shirt',
'large' => 'Large Shirt',
'xlarge' => 'Extra Large Shirt',
);
$shirts_on_sale = array('small', 'large');
echo form_dropdown('shirts', $options, 'large');
this would produce:
<select name="shirts">
<option value="small">Small Shirt</option>
<option value="med">Medium Shirt</option>
<option value="large" selected="selected">Large Shirt</option>
<option value="xlarge">Extra Large Shirt</option>
</select>
REFER HERE
UPDATE
you could also try this if you want
MODEL
$this->db->select('airport_code, airport_name');
$this->db->order_by('airport_code', "asc");
$query = $this->db->get('airports');
if($query)
{
$query = $query->result_array();
return $query;
}
CONTROLLER
$query = $this->your_model->your_method();
if($query)
{
$data['myDropdown'] = $query;
$this->load->view('your_view', $data);
}
VIEW - YOUR DROPDOWN PROBLEM
<select>
<?php
foreach($myDropdown as $dd)
echo "<option value='". $dd['your_field'] ."'>". $dd['your_field'] ."</option>";
?>
</select>
来源:https://stackoverflow.com/questions/16977417/trying-to-populate-a-dropdown-menu-in-codeigniter-with-mysql-data