Ajax 500(内部服务器错误)Codeigniter

时间:2015-11-03 11:09:08

标签: php jquery ajax codeigniter

我的AJAX代码存在一些问题。我的任务是创建一个带有codeigniter的依赖下拉选择框,所以我使用AJAX:

<script type="text/javascript">
    $('#ruangan, #ruangan_label').hide();
    $('#unit').change(function() {
        var unit_id = $('#unit').val();
        if (unit_id != "") {
            var post_url = "getruangan" + unit_id;
            $.ajax({
                type: "POST",
                url: post_url,
                success: function(ruangan) {
                    $('#ruangan').append(ruangan);
                }
            });
            /* $('#ruangan, #ruangan_label').show(); */
        } else {
            $('#ruangan').empty();
            $('#ruangan, #ruangan_label').hide();
        }
    });
</script>

这是我的控制器:

function getruangan($units)
{
    $unit = explode('|', $units);
    $unitkerja = $unit[0];
    $this->load->model('admin/laporanmodel', '', TRUE);
    echo (json_encode($this->laporanmodel->get_ruangan($unitkerja)));
}

这是我从控制台发出的错误:

POST http://localhost:8080/simas/admin/laporan/getruangan023040500414964002KD%7CBPSPP 500 (Internal Server Error)
send @ jquery.min.js:6
x.extend.ajax @ jquery.min.js:6
(anonymous function) @ repdbr:250
x.event.dispatch @ jquery.min.js:5
v.handle @ jquery.min.js:5
ListPicker._handleMouseUp @ about:blank:810

I have no problems with the connection between controller and model. Can you help me?

1 个答案:

答案 0 :(得分:1)

您的功能需要一个参数,但是除非变量unit_id包含斜杠/,否则您无法正确发送参数。

var post_url = "getruangan" + unit_id;
// Output: getruangan55

由于您使用的是POST,因此无需将其作为url参数发送。

if(unit_id == '')
{
   $('#ruangan').empty();
   $('#ruangan, #ruangan_label').hide();

   return;
}

$.ajax(
{
   type: 'POST',
   url: 'getruangan',
   data: {'unit_id': unit_id, 'otherParam': otherValue},
   success: function(response)
   {
      $('#ruangan').append(response);
   }
});

从PHP方面,您可以通过$_POST访问内容。

print_r($_POST); // To check the values passed
print_r($this->input->post('unit_id')); // To access a value