我想向所選學校,班級和部分顯示學生。如果我從控制器中刪除'class_id' => $class_id, 'section_id' => $section_id,
,則會顯示所選學校的所有學生,否則不顯示任何內容。請任何解決方案。我錯在哪裏? 這是從哪兒我必須選擇價值如何在codeigniter中傳遞<select>的多個值onchange事件
<div class="form-group">
<label class="col-sm-3 control-label" >School<span class="required">*</span></label>
<div class="col-sm-5">
<select name="school_id" id="school_id" class="js-example-basic-multiple form-control" onchange="get_student_by_school_class_section_id()">
<option value="" >Select School...</option>
<?php if (!empty($all_school_info)): foreach ($all_school_info as $v_school): ?>
<option value="<?php echo $v_school->school_id; ?>"
<?php if (!empty($all_student_complain_info->school_id)) {
echo $v_school->school_id == $all_student_complain_info->school_id ? 'selected ' : ''; } ?>>
<?php echo $v_school->school_name ; ?>
</option>
<?php
endforeach;
endif;
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" >Class<span class="required">*</span></label>
<div class="col-sm-5">
<select name="class_id" id="class_id" class="js-example-basic-multiple form-control" onchange="get_student_by_school_class_section_id()">
<option value="" >Select Class...</option>
<?php if (!empty($all_classes_info)): foreach ($all_classes_info as $v_class): ?>
<option value="<?php echo $v_class->class_id; ?>"
<?php if (!empty($all_student_complain_info->class_id)) {
echo $v_class->class_id == $all_student_complain_info->class_id ? 'selected ' : ''; } ?>>
<?php echo $v_class->classes_name ; ?>
</option>
<?php
endforeach;
endif;
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" >Section<span class="required">*</span></label>
<div class="col-sm-5">
<select name="section_id" id="section_id" class="js-example-basic-multiple form-control" onchange="get_student_by_school_class_section_id()">
<option value="" >Select Section...</option>
<?php if (!empty($all_section_info)): foreach ($all_section_info as $v_section): ?>
<option value="<?php echo $v_section->section_id; ?>"
<?php if (!empty($all_student_complain_info->section_id)) {
echo $v_section->section_id == $all_student_complain_info->section_id ? 'selected ' : ''; } ?>>
<?php echo $v_section->section_name ; ?>
</option>
<?php
endforeach;
endif;
?>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label" >Student<span class="required">*</span></label>
<div class="col-sm-5">
<select name="student_id" id="student" class="js-example-basic-multiple form-control" >
<option value="" >Select Student...</option>
<?php if (!empty($student_info)): foreach ($student_info as $v_student): ?>
<option value="<?php echo $v_student->student_id; ?>"
<?php if (!empty($all_student_complain_info->student_id)) {
echo $v_student->student_id == $all_student_complain_info->student_id ? 'selected ' : ''; } ?>>
<?php echo $v_student->student_id.' '.$v_student->student_name.' ('.$v_student->student_father_name.')' ; ?>
</option>
<?php
endforeach;
endif;
?>
</select>
</div>
</div>
這是文件ajax.php
function get_student_by_school_class_section_id() {
var school_id = document.getElementById('school_id').value;
var class_id = document.getElementById('class_id').value;
var section_id = document.getElementById('section_id').value;
var base_url = '<?= base_url() ?>';
var strURL = base_url + "admin/global_controller/get_student_by_school_class_section_id/" + school_id + "/" + class_id + "/" + section_id;
var req = getXMLHTTP();
if (req) {
req.onreadystatechange = function() {
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
var result = req.responseText;
$("#student").html("<option value='' >Select Student...</option>");
$("#student").append(result);
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
}
req.open("POST", strURL, true);
req.send(null);
}
}
這是Controller.php這樣
public function get_student_by_school_class_section_id($school_id, $class_id, $section_id) {
$HTML = NULL;
$this->studentrecord_model->_table_name = 'tbl_studentrecords';
$this->studentrecord_model->_order_by = 'student_id';
$student_info = $this->studentrecord_model->get_by(array('school_id' => $school_id, 'class_id' => $class_id, 'section_id' => $section_id, 'status' => '1'), FALSE);
if (!empty($student_info)) {
foreach ($student_info as $v_student_info) {
$HTML.="<option value='" . $v_student_info->student_id . "'>" .$v_student_info->student_id.' '.$v_student_info->student_name.' ('.$v_student_info->student_father_name.')'. "</option>";
}
}
echo $HTML;
}
我想告訴從所選的學校學生,課堂和部分。如果我從控制器中刪除'class_id' => $class_id, 'section_id' => $section_id,
,則會顯示所選學校的所有學生,否則不顯示任何內容。請任何解決方案。我錯在哪裏?
需要更多的信息來完成。要麼我們需要更多關於'studentrecord_model-> get_by'函數的信息,或者,更好的是,我們需要更多關於問題實際發生位置的信息。嘗試將'var_dump($ class_id,$ section_id)''拋入控制器函數並檢查響應以查看值是否與預期一致。 –
'var strURL = base_url +「admin/global_controller/get_student_by_school_class_section_id /」+ school_id +「/」+ class_id +「/」+ section_id;'是否正確 – LEARNER
就語法而言,該代碼沒有任何問題。這條線會做它說的。但是沒有看到更多的代碼,我不能告訴你它所說的是你想說的。 當您嘗試運行該頁面時,ajax調用是否正確?在瀏覽器中打開DevTools,查看網絡請求,然後嘗試在新標籤中打開相關請求。任何錯誤消息? –