codeigniter에서 ajax를 사용하여 내 데이터베이스에서 데이터를 가져 오려고하는데 작동하지 않습니다. 내 모델 함수에 grade_id를 전달하면 문제가 발생한다고 생각합니다.codeigniter에서 AJAX를 사용하여 데이터베이스에서 데이터 가져 오기
AJAX :
<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>
CONTROLLER :
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');
}
}
MODEL :
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;
}
}
EDIT :
나는 2 가지를 제외하고는 현재 작동 중입니다. 오류가 계속 발생합니다.
A PHP Error was encountered
Severity: Warning
Message: Invalid argument supplied for foreach()
Filename: helpers/form_helper.php
Line Number: 331
내가 처음 페이지를로드 할 때 그것은 단지 성적 값이 변경 될 경우 AJAX를 활성화하기 때문에 클래스에 대한 입력 필드는 비어 :
ERROR .
function get_classes()
{
$this->load->model('school_info_model');
if ($gradeid = $this->input->post('gradeid')
{
$query = $this->school_info_model->get_all_classes($gradeid);
header('Content-Type: application/json');
echo json_encode($query);
} else {
redirect('some/controller');
}
}
그리고 나는이 같은 일을 내 JS를 바꿀 것 :
<script type="text/javascript">// <![CDATA[
$(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/",
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>
난 당신이 원하는 곳이 정확히 잘 모르겠어요 내가 이렇게 내 컨트롤러를 설정합니다
어떤 오류가 발생합니까? – WebNovice