2015-11-03 353 views
0

我的AJAX代码存在一些问题。我的任务是创建一个笨一些相关的下拉选择框,所以我用AJAX:Ajax 500(内部服务器错误)Codeigniter

<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))); 
} 

这是我eror从控制台:

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? 
+0

您的标题显示500 apache错误,这不是非常具体。你有没有收到任何错误信息? – Jan

+1

把你的错误报告,看看真正的问题。改变你的环境来开发'define('ENVIRONMENT','development');' –

+0

为什么你可以直接在你的url中设置'unit_id',你可以传递它作为get/post数据? – madalinivascu

回答

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