我有链接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)));
}
对不起我的英语,我尽力做到最好:)
答案 0 :(得分:1)
由于var sousDomaine_id = $('#sousDomaine').val;
您必须使用
var sousDomaine_id = $('#sousDomaine').val();