1

我正在尝试使用 AJAX 根据另一个下拉菜单值填充下拉菜单。但我无法让它工作。希望你们能指出我正确的方向。

模型:

function get_all_classes($gradeid)
{
    $this->db->where('grade_id', $gradeid);
    $query = $this->db->get('classes');
    $result = $query->result();

    foreach($result as $row)
    {
        $options[$row->id] = $row->name;
    }

    return $options;
}

看法:

<?php
echo form_dropdown('grades', $grades, '', 'id="grades"');
?>

    //This dropdown is filled based on the selection from my 'grades' dropdown menu
<?php
echo form_dropdown('classes', $classes, '', 'id="classes"');
?>

控制器: 函数 registerform() { $this->load->model('school_info_model');

    if ($query = $this->school_info_model->get_all_grades())
    {
        $data['grades'] = $query;
    }

    if ($query = $this->school_info_model->get_all_classes($this->input->post('gradeid')))
    {
        $data['classes'] = $query;
    } 

    $data['main_content'] = 'register_form_view';
    $this->load->view('template/template.php', $data);
}

阿贾克斯:

var gradeid = $('#grades').val();

$("#grades").change(function(){
    $.ajax({
        url: '<?php echo base_url().'index.php/login/registerform' ?>',
        type: 'POST',
        data: gradeid,
        succes: function(){
            alert('dadasd');
        }
    });
});

编辑:更新 ajax 代码

4

2 回答 2

0

您可能希望在更改中设置您的gradeid,以便每次有人更改该字段时都会更改它,因为您将动态设置另一个下拉列表......然后您将需要根据您检索的内容更改选项.. .所以当你的ajax返回时你需要一个回调......你也应该有错误等的可能性,但你可以在这里阅读更多关于它的信息http://api.jquery.com/jQuery.ajax/

$("#grades").change(function(){
    var gradeid = $(this).val();
    $.ajax({
        url: '<?php echo base_url().'index.php/login/registerform' ?>',
        type: 'POST',
        data: gradeid
    }).done(function(data) {
        //set your returned data to your options for classes
    });
});
于 2013-10-12T16:57:17.733 回答
0

看起来您需要为 Ajax 设置某种绑定事件,如下所示:

$('#link').on('click', function(){
    $.ajax({
        url: '<?php echo base_url().'index.php/login/registerform' ?>',
        type: 'POST',
        data: gradeid,
    });
});
于 2013-10-12T16:24:50.187 回答