2016-01-24 3 views
1

Я создаю форму членства в библиотеке, и в этом случае список студентов заполняется через запрос ajax в опции выбора. Теперь мне нужно отключить параметры ученика, которые уже являются членами библиотеки.отключить опцию выбора, если значение параметра уже существует

Форма выпуска

<div class="form-group"> 
    <div class="input-group"> 
    <span class="input-group-addon"><i class="fa fa-asterisk" aria-hidden="true"></i> <i class="fa fa-calendar" aria-hidden="true"></i> <?php echo get_phrase('_batch'); ?></span> 
    <select id="batch_result_holder" name="batch_result_holder" onchange="return get_batchs_students(this.value)" data-plugin="select2" required> 
     <option disabled selected value=""> <?php echo get_phrase('select_programs_first'); ?></option> 
    </select> 
    </div> 
</div><!-- form-group --> 

<div class="form-group"> 
    <div class="input-group"> 
    <span class="input-group-addon"><i class="fa fa-asterisk" aria-hidden="true"></i> <i class="fa fa-user" aria-hidden="true"></i> <?php echo get_phrase('_student'); ?></span> 
    <select id="student_result_holder" name="student_result_holder" data-plugin="select2" > 
     <option disabled selected> <?php echo get_phrase('select_batch_first'); ?></option> 
    </select> 
    </div> 
</div><!-- form-group --> 

КОД AJAX Потянуть Студенческую Info

function get_batchs_students(batch_result_holder){ 
    var program_id = $('#program_id').val(); 
    $.ajax({ 
    type:"POST", 
    url: '<?php echo base_url();?>index.php?admin/get_batch_students_without_assigned/', 
    data:{batch_result_holder: batch_result_holder, program_id:program_id}, 

    success: function(response) 
    { 
     jQuery('#student_result_holder').html(response); 
    } 
    }); 
} 

CONTROLLER, который тянуть список по студент

function get_batch_students_without_assigned($program_id, $batch_id, $status){ 
    $program_id = $this->input->post('program_id'); 
    $batch_id = $this->input->post('batch_result_holder'); 
    $students = $this->crud_model->get_student_list_without_section($program_id, $batch_id, 1); 
    $assigned_student = $this->crud_model->get_assigned_students(); 
    echo '<option value="" selected disabled> select from list below </option>'; 
    foreach($assigned_student as $row2): 
    foreach($students as $row){ 

     echo '<option value="' . $row['student_id'] . '"'; 
     if($row['student_id'] == $row2['type_id']): 
     echo 'disabled'; 
     endif; 
     echo '>'; 
     echo $row['name']; 
     echo '</option>'; 
    } 
    endforeach; 
} 

Но вышеперечисленный контроллер будет проходить через всех учеников и назначать студентов и выводить те же параметры ученика в отключенном и не отключенном формате. Итак, как я могу предотвратить этот контроллер, чтобы показать, что все учащиеся - это студенты-инвалиды, которые уже являются членами.

output of the above controller

ответ

0

Вы можете собирать идентификаторы Присвоенный студента в массиве, и проверить, является ли student_id в петле в массиве:

$assigned = array(); 
    foreach($assigned_student as $row2) { 
    $assigned[] = $row2['student_id']; 
    } 
    foreach($students as $row){} 
     echo '<option value="' . $row['student_id'] . '"'; 
     if(in_array($row['student_id'], $assigned): 
     echo 'disabled'; 
     endif; 
     echo '>'; 
     echo $row['name']; 
     echo '</option>'; 
    endforeach; 
+0

Спасибо так много @Gavriel ... его работы Теперь :) –

Смежные вопросы