我的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?
答案 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