Codeigniter ajax使用ajax代码将数据发送到控制器

时间:2013-08-30 09:08:07

标签: php jquery ajax codeigniter

<script type="text/javascript">
    $(document).ready(function () {
        $("#select-dept").change(function () {
            var id = $("#select-dept").val();
            $.ajax({
                type: "POST",
                url: "<?=base_url()?>.index.php/sms/get_dept_employee",
                //url: baseurl + 'sms/get_dept_employee',
                data: "id",
                dataType = "json",
                cache: "false",
                success: function (emp_list) {
                    $("#dept-emp").html(emp_list);
                }
            });
        });
    });
</script>

我无法将视图数据发送到控制器功能 在视图中,它们是具有来自mysql数据库的离开值的选择框

<select class="select-dept" id="select-dept" name="select-dept">
    <option>Select Department</option>
    <?foreach ($departments as $dt):?>
        <option value="<?=$dt['id']?>">
            <?=$dt[ 'name']?>
        </option>
    <?endforeach;?>
</select>

当用户选择部门并需要调用控制器功能时,我需要刷新 的 get_dept_employee 并且需要显示员工列表的数据网格

4 个答案:

答案 0 :(得分:13)

您需要将数据选项作为对象发送

试试这个

 .....
 url: "<?=base_url()?>.index.php/sms/get_dept_employee",
 data: {"id":id},
 dataType:"json",
 ....

并在控制器中将发布值设为id ..

$id=$this->input->post('id');
....

答案 1 :(得分:2)

var id = $("#select-dept").val();     

 data:"id", //Here you are sending string as id

应该是

     data:id, //No double quotes surrounded 

答案 2 :(得分:0)

尝试:

data: {'id':$(this).val()},

答案 3 :(得分:0)

我看到了一些错误

使用data: {'id':id},代替data: "id",

使用dataType:"json",代替dataType="json",

使用cache:false代替cache: "false",

<script type="text/javascript">
    $(document).ready(function () {

        var base_url = "<?php echo $this->config->item('base_url'); ?>";

        $("#select-dept").change(function () {

            var id = $(this).val();
            $.ajax({
                type: "POST",
                url: base_url+"index.php/sms/get_dept_employee";
                data: {'id':id},
                dataType:"json",
                cache: false
                success: function (emp_list) {
                    $("#dept-emp").html(emp_list);
                }
            });
        });
    });
</script>