第二个选择取决于在CodeIgniter中使用AJAX的第一个选择

I want my second selects options to vary depending on the choice in the first select. If you pick "Skalman" you can't pick "Whole day with lunch" and if you choose "Lilleskutt" you can't choose "Half day". I haven't worked with AJAX before but thinking that it might be the right way to go, if anyone could help me out I would be more than grateful!

I get the options from the database, using two functions in Booking.php:

private function get_room_options() {

    $this->load->model('Booking_Model');
    $rooms = $this->Booking_Model->get();
    $rooms_form_options = array();

    // get room title and store in array
    foreach ($rooms as $id => $room) {
        $rooms_form_options[$id] = $room->title;
    }

    return array(
        'rooms_form_options' => $rooms_form_options,
    );
}

public function get_package_options() {

    $room = $this->input->post('searchData');

    $this->load->model('Package_Model');
    $packages = $this->Package_Model->get();

    $packages_form_options = array();

    foreach ($packages as $id => $package) {
        $packages_form_options[$id] = $package->package_name;

    }
    return array(
        'packages_form_options' => $packages_form_options,
    );
}

And in my booking.php you find the form:

<?php
    echo form_open('booking/preview') ?>

    <div>
        <?php echo form_label('Conference Room: ', 'id') ; ?>
        <?php echo form_dropdown('id', $rooms_form_options, set_value('id')); ?>
    </div>
    <div>
        <?php echo form_label('Package type: ', 'package_id') ; ?>
        <?php echo form_dropdown('package_id', $packages_form_options, set_value('package_id')); ?>
    </div>
    <div>
        <?php echo form_label('Number of Participants: ', 'number_people') ; ?>
        <?php echo form_input('number_people', set_value('number_people')) ; ?>
    </div>
    <div>
        <?php echo form_submit('preview', 'Book'); ?>
    </div>

<?php echo form_close(); ?>

And my script so far:

<script type="text/javascript">
$(function() {
    $(document).on('change', '[name=id]', function(e){
        var searchData = $(this).val();

        $.ajax({
            url: "<?php echo base_url('index.php/booking/get_package_options'); ?>",
            type: 'POST',
            data: searchData,
            success: function() {
                // how should I get the options in here? 
            }
        });
    });

});
</script>

CodeIgniter doesn't support ajax.For more clarification http://phpframeworks.com/

So lets start from view

<?php echo form_open('booking/preview') ?>

    <div>
        <link rel="stylesheet" href="/css/bootstrap.min.css" />
        <?php echo form_label('Conference Room: ', 'id'), form_dropdown('id', $rooms_form_options, set_value('id')) ?>
    </div>
    <div>
        <?php echo form_label('Package type: ', 'package_id'), form_dropdown('package_id', $packages_form_options, set_value('package_id')) ?>
    </div>
    <div>
        <?php echo form_label('Number of Participants: ', 'number_people'), form_input('number_people', set_value('number_people')) ?>
    </div>
    <div>
        <?php echo form_submit('preview', 'Book') ?>
    </div>

<?php echo form_close() ?>

Here optimize your code by removing trailing semicolon & multiple echo into single statement.

Now in your js part

$(function() {
    $(document).on('change', '[name=id]', function(e){
        var searchData = $(this).val();
        $.post('YOUR_SEARCH_URL', { data : searchData }).done(function(data, textStatus, jqXHR) {
            var h = '';
            $(data.YOUR_SERVER_RESPONSE_KEY).each(function(i, v){
                h += '<option value="' + i + '">' + v + '</option>'
            });
            $('[name=package_id]' ).html(h);
        }).error(function(jqXHR, textStatus, errorThrown) {
            //Handle your ajax error
        });
    });

});

Now at your controller

public function YOUR_CONTROLLER_ACTION() {
    $data = $this->input->post('data');
    //Do your work & get data from model for the id

    //now send json response
    return $this->output
        ->set_content_type('application/json')
        ->set_output(json_encode(YOUR_JSON_RESPONSE_ARRAY));
}

Check this two links http://code.runnable.com/UXczcazDrMMiAAGl/how-to-do-ajax-in-codeigniter-for-php & http://code.tutsplus.com/tutorials/codeigniter-from-scratch-day-8-ajax--net-9243 for more details