我正在尝试使用codeigniter中的ajax将数据从我的数据库中获取到我的视图中,但我无法让它工作。我认为将grade_id 传递给我的模型函数时出了点问题。
阿贾克斯:
<script type="text/javascript">
$(document).ready(function(){
$('#grades').change(function(){
$("#classes > option").remove();
var grade_id = $('#grades').val();
$.ajax({
type: "POST",
url: "<?php echo base_url(); ?>index.php/login/get_classes/"+grade_id,
data: {gradeid:grade_id},
success: function(classes)
{
$.each(classes,function(id,name)
{
var opt = $('<option />');
opt.val(id);
opt.text(name);
$('#classes').append(opt);
});
}
});
});
});
</script>
控制器:
function get_classes($gradeid)
{
$this->load->model('school_info_model');
header('Content-type: application/json');
if ($query = $this->school_info_model->get_all_classes($gradeid))
{
echo json_encode($query);
} else {
redirect('login/loginform');
}
}
模型:
function get_all_classes($gradeid)
{
$this->db->where('grade_id', $gradeid);
$query = $this->db->get('classes');
if($query->result()){
$result = $query->result();
foreach($result as $row)
{
$options[$row->id] = $row->name;
}
return $options;
}
}
编辑:
我更新了我现在正在工作的代码,除了两件事,我一直收到错误。
错误:
遇到 PHP 错误
严重性:警告
消息:为 foreach() 提供的参数无效
文件名:helpers/form_helper.php
行号:331
当我第一次加载页面时,类的输入字段是空的,因为它只有在等级值发生变化时才会激活 AJAX。