Я пытаюсь создать форму с 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>';
}
}
Вы называете функцию ajax в третьем выпадающем списке. проверьте его –
Я думаю, что функция get_batchs_sections отвечает за это, поскольку я знаю, что #section_result_holder будет удерживать значение раздела, как работает предыдущий. если у меня есть какие-либо ошибки, пожалуйста, укажите это через код. спасибо за вашу помощь :) @Vigneswaran –