Welcome Guest, Not a member yet? Register   Sign In
Dynamic Select Dropdowns
#1

[eluser]ajh_8[/eluser]
Hi all,

I wonder if anyone can help me at all? I'm trying to get dynamic select options within my website.

I want the user to select a 'Division' and then the select below will then show 'Teams' but I only want them to able to choose the 'Teams' that are within the selected 'Division'

[removed]
Code:
$(document).ready(function() {
            $('select#division').change(function() {
                   var div = $(this).val();  
                   if(div != "") {
                             $.post("/add_fixture/list_teams/",{division_id: div}, function(data){
                                      $("select#team").html(data);
                             });
                   }
          });
          });

Controller:
Code:
function create() {    
        $data['division_list'] = $this->add_fixture_model->get_divisions();
        $data['team_list'] = $this->add_fixture_model->get_teams();
        $data['referee_list'] = $this->add_fixture_model->get_referee();
        
        
        // field name, error message, validation rules
        $this->form_validation->set_rules('team_name', 'Team Name', 'trim|required');
        $this->form_validation->set_rules('home_team', 'Home Team Name', 'trim|required');
        $this->form_validation->set_rules('away_team', 'Away Team Name', 'required');
        $this->form_validation->set_rules('division_name', 'Division', 'trim|required');
        $this->form_validation->set_rules('referee', 'Referee', 'trim|required');
        $this->form_validation->set_rules('fixture_week', 'Fixture Week', 'trim|required');
        $this->form_validation->set_rules('fixture_day', 'Fixture Day', 'trim|required');
        $this->form_validation->set_rules('fixture_month', 'Fixture Month', 'trim|required');
        $this->form_validation->set_rules('fixture_year', 'Fixture Year', 'trim|required');
        $this->form_validation->set_rules('confirm_day', 'Fixture Confirm Day', 'trim|required');
        $this->form_validation->set_rules('confirm_month', 'Fixture Confirm Month', 'trim|required');
        $this->form_validation->set_rules('confirm_year', 'Fixture Confirm Year', 'trim|required');
        

    
        
        if($this->form_validation->run() == FALSE)
        {
            $this->load->view('includes/top');
            $this->load->view('includes/header');
            $this->load->view('league/add_fixture', $data);
            $this->load->view('includes/footer');
        }
        
        else
        {            
            if($query = $this->add_fixture_model->add_fixture())
            {
                $this->load->view('includes/top');
                $this->load->view('includes/header');
                $this->load->view('league/fixture_added');
                $this->load->view('includes/footer');
                
            }
            else
            {
                $this->load->view('includes/top');
                $this->load->view('includes/header');
                $this->load->view('league/fixture_added', $data);
                $this->load->view('includes/footer');        
            }
        }
        
    }
    
    
    function list_teams() {            
         $result = $this->add_fixture_model->list_teams();
            if($result->num_rows() > 0) {
                echo '<option value="">Select a team</option>';
                       foreach($result->result_array() as $row){
                        $html = '<option value="'.$row['division_id'].'">'.$row['team_name'].'</option>';
                           echo $html;  
                     }
                   } else {
                          $html = '<option value="">No teams found</option>';
                        echo $html;  
                  }                
     }

Model:

Code:
function get_divisions()
    {
          $this->db->from('divisions');
          $this->db->order_by('division_name');
          $result = $this->db->get();
          $return = array();
          if($result->num_rows() > 0) {
            foreach($result->result_array() as $row) {
            $return[''] = 'Select a division';
            $return[$row['id']] = $row['division_name'];
                }
              }

          return $return;
    }
    
    function get_teams()
    {
          $this->db->from('teams');
          $this->db->order_by('team_name');
          $result = $this->db->get();
          $return = array();
          if($result->num_rows() > 0) {
            foreach($result->result_array() as $row) {
            $return[''] = 'Select a team';
            $return[$row['id']] = $row['team_name'];
                }
              }

          return $return;
    }
    
    function list_teams() {
        $this->db->from('teams');
        $this->db->where('division_id', $this->input->post('id'));
        $this->db->order_by('team_name');
        $result = $this->db->get();
                  
        return $result;
    }

View:
Code:
<label for="division" class="label">Division:</label>&lt;?php $js = 'id="division"'; echo form_dropdown('division', $division_list, set_value('division'), $js);  ?&gt;
    
    <label for="team" class="label">Team</label><select id="team" name="team"></select>

Any help would be greatly appreciated Smile




Theme © iAndrew 2016 - Forum software by © MyBB