2015-12-17 4 views
1

Я пытаюсь создать форму с 3 различными полями выбора. значение первого окна выбора напрямую заполняется через базу данных, 2-й и 3-й поле выбора заполняется с помощью ajax; на основе ранее выбранных значений. вот мой код формы представления.динамический выпадающий список селектора с помощью jquery, ajax и codeigniter

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

<script> 
 
function get_program_batchs(program_id) { 
 
    $.ajax({ 
 
    url: '<?php echo base_url();?>index.php?admin/get_program_batchs/' + program_id , 
 
    success: function(response) 
 
    { 
 
     jQuery('#batch_result_holder').html(response); 
 
    } 
 
    }); 
 

 
} 
 

 
function get_batchs_section(batch_result_holder){ 
 
    $.ajax({ 
 
    url: '<?php echo base_url();?>index.php?admin/get_batch_sections/' + batch_result_holder , 
 
    success: function(response) 
 
    { 
 
     jQuery('#section_result_holder').html(response); 
 
    } 
 
    }); 
 
} 
 
</script>
<div class="form-group"> 
 
    <span><?php echo get_phrase('select_program'); ?></span> 
 
    <select onchange="return get_program_batchs(this.value)" data-plugin="select2" id="program_id" name="program_id" required=""> 
 
    <option disabled selected value=""> <?php echo get_phrase('select_programs'); ?></option> 
 
    <?php 
 
$programs = $this->db->get('programs')->result_array(); 
 
foreach($programs as $row2): 
 
?> 
 
    <option value="<?php echo $row2['program_id'];?>"> 
 
     <?php echo $row2['name'];?> 
 
    </option> 
 
    <?php endforeach; ?> 
 
    </select> 
 
</div> 
 

 
<div class="form-group"> 
 
    <span><?php echo get_phrase('select_batch'); ?></span> 
 
    <select name="batch_result_holder" id="batch_result_holder" onchange="return get_batchs_section(this.value)" data-plugin="select2" required> 
 
    <option disabled selected value=""> 
 
     <?php echo get_phrase('select_programs_first'); ?> 
 
    </option> 
 
    </select> 
 
</div> 
 

 

 
<div class="form-group"> 
 
    <span><?php echo get_phrase('select_section'); ?></span> 
 
    <select name="section_id" id="section_selection_holder" data-plugin="select2" > 
 
    <option disabled selected> <?php echo get_phrase('select_programs_first'); ?></option> 
 
    </select> 
 
</div>

и это код контроллера, который выборки данных из БД и заселить раскрывающиеся меню.

///// **** ADD FORM DYNAMIC VALUE /////// 
 
function get_program_batch($program_id) 
 
{ 
 
$batchs = $this->db->get_where('batch' , array(
 
'program_id' => $program_id 
 
))->result_array(); 
 
foreach ($batchs as $row) { 
 
echo '<option value="' . $row['batch_id'] . '">' . $row['batch_name'] . '</option>'; 
 

 
} 
 
} 
 

 
function get_batch_sections($batch_result_holder) 
 
{ 
 
$sections = $this->db->get_where('section' , array(
 
'batch_id' => $batch_result_holder 
 
))->result_array(); 
 
foreach ($sections as $row) { 
 
echo '<option value="' . $row['section_id'] . '">' . $row['name'] . '</option>'; 
 

 
} 
 
}

+0

Вы называете функцию ajax в третьем выпадающем списке. проверьте его –

+0

Я думаю, что функция get_batchs_sections отвечает за это, поскольку я знаю, что #section_result_holder будет удерживать значение раздела, как работает предыдущий. если у меня есть какие-либо ошибки, пожалуйста, укажите это через код. спасибо за вашу помощь :) @Vigneswaran –

ответ

0

Предполагая, что запрос работает, у вас есть в вашем втором jQuery метод

jQuery('#section_result_holder').html(response); 

тогда у вас есть в вашей третьей выберите в HTML

<select name="section_id" id="section_selection_holder" data-plugin="select2" > 

ids#section_result_holder и #section_selection_holder здесь не совпадают. Это может быть причиной.

+0

спасибо своим рабочим :) –

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