2017-08-15 38 views
1

我想向所選學校,班級和部分顯示學生。如果我從控制器中刪除'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.'&nbsp;&nbsp;'.$v_student->student_name.'&nbsp;('.$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.'&nbsp;'.$v_student_info->student_name.'&nbsp;('.$v_student_info->student_father_name.')'. "</option>"; 
      } 
     } 
     echo $HTML; 
    } 

我想告訴從所選的學校學生,課堂和部分。如果我從控制器中刪除'class_id' => $class_id, 'section_id' => $section_id,,則會顯示所選學校的所有學生,否則不顯示任何內容。請任何解決方案。我錯在哪裏?

+0

需要更多的信息來完成。要麼我們需要更多關於'studentrecord_model-> get_by'函數的信息,或者,更好的是,我們需要更多關於問題實際發生位置的信息。嘗試將'var_dump($ class_id,$ section_id)''拋入控制器函數並檢查響應以查看值是否與預期一致。 –

+0

'var strURL = base_url +「admin/global_controller/get_student_by_school_class_section_id /」+ school_id +「/」+ class_id +「/」+ section_id;'是否正確 – LEARNER

+0

就語法而言,該代碼沒有任何問題。這條線會做它說的。但是沒有看到更多的代碼,我不能告訴你它所說的是你想說的。 當您嘗試運行該頁面時,ajax調用是否正確?在瀏覽器中打開DevTools,查看網絡請求,然後嘗試在新標籤中打開相關請求。任何錯誤消息? –

回答

0

我已經改變global_controller.php這樣的代碼

public function get_student_by_school_class_section_id($school_id, $class_id, $section_id) { 
     $HTML = NULL; 
     $school = $school_id; 
     $class = $class_id; 
     $section = $section_id; 
     $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, 'class_id' => $class, 'section_id' => $section, '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.'&nbsp;'.$v_student_info->student_name.'&nbsp;('.$v_student_info->student_father_name.')'. "</option>"; 
      } 
     } 
     echo $HTML; 
    } 
0

這是studentrecord_model.php

public function all_student_record_info_by_scs($school_id, $class_id, $section_id) { 
     $this->db->select('tbl_studentrecords.*', FALSE); 
     $this->db->select('tbl_school.*', FALSE); 
     $this->db->select('tbl_class.*', FALSE); 
     $this->db->select('tbl_section.*', FALSE); 
     $this->db->select('tbl_fee_department.*', FALSE); 
     $this->db->from('tbl_studentrecords'); 
     $this->db->join('tbl_school', 'tbl_school.school_id = tbl_studentrecords.school_id', 'left'); 
     $this->db->join('tbl_class', 'tbl_class.class_id = tbl_studentrecords.class_id', 'left'); 
     $this->db->join('tbl_section', 'tbl_section.section_id = tbl_studentrecords.section_id', 'left'); 
     $this->db->join('tbl_fee_department', 'tbl_fee_department.fee_department_id = tbl_studentrecords.fee_department_id', 'left'); 
     $this->db->where('tbl_studentrecords.school_id', $school_id); 
     $this->db->where('tbl_studentrecords.class_id', $class_id); 
     $this->db->where('tbl_studentrecords.section_id', $section_id); 
     $query_result = $this->db->get(); 
     $result = $query_result->result(); 
     return $result; 
    } 
相關問題