链选择/链接列表CodeIgniter

时间:2014-01-21 11:26:32

标签: jquery ajax list codeigniter select

我有链接3列表的问题。前两个列表没有问题,它工作正常,但当我在第二个列表中选择一个项目时,第三个没有实现自己。 我注意到我无法恢复所选项目的值到第二个列表中。

这是我的代码:

观点:

<div class="bloc">
                <div class="bleft">
                    <label for="secteurPro">Secteur professionnel</label>
                </div>
                <div class="bright">
                    <select id="secteurPro" name="secteurPro" class="secteurPro">
                        <option value="0">-- Choisissez --</option>
                        <?php
                            if(isset($secteurs[0]))
                            {
                                for($i=0; $i < count($secteurs); $i++)
                                {
                                    echo '<option value="'.$secteurs[$i]->id_sect_pro.'">'.$secteurs[$i]->lib_sect_pro.'</option>';
                                }
                            }
                        ?>
                    </select>   
                    <?php echo form_error('secteurPro', '<div class="notice error"><i class="icon-remove-sign icon-large"></i><a href="#close" class="icon-remove"></a>', '</div>'); ?>
                </div>

                <div class="clear"></div>
            </div>

            <div class="bloc">
                <div class="bleft">
                    <label for="sousDomaine" id="l_ss">Sous domaine</label>
                </div>
                <div class="bright">
                    <select id="sousDomaine" name="sousDomaine" class="sousDomaine">
                        <option value="0">-- Choisissez un secteur --</option>
                    </select>
                    <?php echo form_error('sousDomaine', '<div class="notice error"><i class="icon-remove-sign icon-large"></i><a href="#close" class="icon-remove"></a>', '</div>'); ?>
                </div>

                <div class="clear"></div>
            </div>

            <div class="bloc">
                <div class="bleft">
                    <label for="precisionSousDomaine" id="l_prec">Précision du sous domaine</label>
                </div>
                <div class="bright">
                    <select id="precisionSousDomaine" name="precisionSousDomaine" class="precisionSousDomaine">
                        <option value="0">-- Choisissez --</option>
                    </select>
                    <?php echo form_error('precisionSousDomaine', '<div class="notice error"><i class="icon-remove-sign icon-large"></i><a href="#close" class="icon-remove"></a>', '</div>'); ?>
                </div>

脚本:

<script>

$(document).ready(function() {

    $('#secteurPro').change(function(){
        var region_id = $('#secteurPro').val();
        if (region_id != "")
        {
            var post_url = "sous_domaine/" + region_id;
            $.ajax({
                type: "POST",
                dataType: "json",
                url: post_url,
                success: function(sousDomaine) 
                {
                    $('#sousDomaine').empty();
                    $('#sousDomaine,#l_ss').show();
                    $('#sousDomaine').append('<option>-- Choisissez un sous-domaine --</option>'); // On ajoute l'option manquante

                        $.each(sousDomaine,function(sousDomaine_ID,sousDomaineNom) 
                        {
                            var opt = $('<option/>'); 
                            opt.val(sousDomaine_ID.id_ss_dom_pro);
                            opt.text(sousDomaineNom.lib_ss_dom_pro);    
                            $('#sousDomaine').append(opt); 
                        });
                   } //end success
             }); //end AJAX
        } 
        else 
        {
            $('#sousDomaine').empty();
            $('#sousDomaine').hide();
        }//end if
    }); //end change   
});


$(document).ready(function() {

    $('#sousDomaine').change(function(){

        var sousDomaine_id = $('#sousDomaine').val; // Empty, so it doesn't work !!!!!!!!!!!
        if (sousDomaine_id != "")
        {
            var post_url = "prec_sous_domaine/" + sousDomaine_id;
            $.ajax({
                type: "POST",
                dataType: "json",
                 url: post_url,
                 success: function(district) 
                 {
                    $('#precisionSousDomaine').empty();
                    $('#precisionSousDomaine,#l_prec').show();
                    $('#precisionSousDomaine').append('<option>-- Choisissez un sous-domaine --</option>');

                        $.each(district,function(District_ID,DistrictNom) 
                        {
                            var opt = $('<option/>'); 
                            opt.val(District_ID.id_prec_ss_dom_pro);
                            opt.text(DistrictNom.lib_prec_ss_domaine);
                            $('#precisionSousDomaine').append(opt); 
                        });
                   } //end success
             }); //end AJAX
        } 
        else 
        {
            $('#precisionSousDomaine').empty();
            $('#precisionSousDomaine').hide();
        }//end if
    }); //end change    
});

控制器:

public function sous_domaine($secteurPro)
{
    header('Content-Type: application/x-json; charset=utf-8');
    echo(json_encode($this->M_Experience->sous_domaine($secteurPro)));
}

public function prec_sous_domaine($sous_domaine)
{
    header('Content-Type: application/x-json; charset=utf-8');
    echo(json_encode($this->M_Experience->prec_sous_domaine($sous_domaine)));
}

对不起我的英语,我尽力做到最好:)

1 个答案:

答案 0 :(得分:1)

由于var sousDomaine_id = $('#sousDomaine').val;

,您获得空值

您必须使用

var sousDomaine_id = $('#sousDomaine').val();