Salut, j'ai mis sur pied liste de menu déroulant dynamique de 3 niveau qui me permet d'envoyé les données une fois le troisième niveau (menu) change de valeur. Le soucis est que lorsque le troixième menu change de valeur, l'envoi se fait deux fois je veus dire il y'a double envoi des données voila mon code js:
$(function()
{
$('.listclass').hide();
$('.listseq').on('change',function()
{
var choix = $('.idsequence').val();
if(choix !=0)
{
$('.listclass').show();
$('.listclass').on('change',function()
{
var listchoix = $('#idfiliere').val();
if(listchoix == 0)
{
$('.jsclass').hide();
$('#infosseq').modal('show');
$('#infosseq').css('opacity', '1');
$('.contenu-form').hide();
}
else
{
$('.contenu-form').hide();
$('.jsclass').on('change', function()
{
var mat = $('#idmatiere').val();
if(mat == 0)
{
$('#infosseq').modal('show');
$('#infosseq').css('opacity', '1');
$('.contenu-form').hide();
}
else
{
var id = $('#idfiliere').val();
var seq = $('.idsequence').val();
$.get('classexist',{id:$('#idfiliere').val(), mat:$('#idmatiere').val(), seq:$('.idsequence').val() },function(data){
if(data.valexist == 1)
{
$('.contenu-form').show();
$('.contenu-form').empty().html(data);
}
else
{
$('.contenu-form').show();
$('.contenu-form').empty().html(data);
return false;
}
},'json');
}
}
);
}
}
);
}
else
{
$('#infosseq').modal('show');
$('#infosseq').css('opacity', '1');
$('.listclass').hide();
$('.jsclass').hide();
$('.contenu-form').hide();
}
}
);
}
);
et mon formulaire aisi (je code avec le framework cakephp 2.7)
<table class="panel">
<tr>
<td>
<div class="form-group listseq">
<?php
echo $this->Form->input('sequences_id', array('label' => 'Séquence','empty' => array('Choisir une Sequence'),'class'=>'form-control idsequence ','options' => $listesequence,'required' => true));
?>
</div>
</td>
<td>
<div class="form-group listclass">
<?php
echo $this->Form->input('filieres_id', array('label' => 'Classe *','empty' => array('Choisir une Classe'),'class'=>'form-control ajaxliste idfiliere ','data-target' => 'idmatiere','data-url' => array('action' => 'listematierenonrempli'),'id' => 'idfiliere','options' => $listclasse));
?>
</div>
</td>
<td>
<div class="form-group jsclass">
<?php
$options = array('0' => array('Choisir une matière'));
echo $this->Form->select('matieres_id',$options,array('label' => 'Matière *','class'=>'form-control classmatiere','id' => 'idmatiere'));
?>
</div>
</td>
</tr>
</table>