salut à tous.
j'ai crée 3 menus mlié en jquery(le menu2 depend du menu1 et le menu 3 depend du menu 2). lorsque je soumet mon formulaire avec les données sélectionner dans les trois menus, tous ce passe bien j'ai bien les informations postés par get (utilisant). mais lorsque je change la valeur du menu 2 et menu3, mes données sont soumis deux fois( 1er fois lors de la première modification, 2 e fois lorsque je change de nouveau les données). donc si après avoir affiché tous les niveau de mon formulaire, si je change les valeurs des select 10 fois, lors de la soumission, la même donnée sera soumis 10 foi.
voici mon code js


$(function() {
  $('.listclass').hide();
  $('.listseq').change(function(){
    var choix = $('.idsequence').val();
    if(choix != 0)
    {
       $('.listclass').show();
      //$('.contenu-form').show();
       $('.listclass').change(function() {
        $('.jsclass').show();
        $('.jsclass').change(function(){

          var id = $('#idfiliere').val();
           var mat = $('#idmatiere').val();
           if(mat == 0)
           {

              //location.reload();
               $('.contenu-form').hide();
              $('#infosseq').modal('show');
                $('#infosseq').css('opacity', '1');
           }
           else
            {
              /*$.get('index', {id}, function(data) {

                                 $('.contenu-form').empty().html(data);

                         });
                        return false; */

                        $.ajax({

                          type:'GET',
                          url: 'index',
                          success: function(data)
                          {
                            $('.contenu-form').empty().html(data);
                          },
                          error: function()
                          {
                             $('#infosseq').modal('show');
                             $('#infosseq').css('opacity', '1');
                          }

                        });
                        return true; 
            }
        });

      });
    }
    else
    {

        $('#infosseq').modal('show');
        $('#infosseq').css('opacity', '1');
        $('.listclass').hide();
        $('.jsclass').hide();
        $('.contenu-form').hide();
    }

   });

});

et mon code d'affichage de formulaire qui fonctionne parfaitement
:


<?php echo $this->Form->create('Note',array('class'=>'form-inline','id' => 'formstudent','url'=> array('action'=> 'addnote'))); ?>

<div class="col-lg-12 col-md-12">

            <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>&nbsp;
                        <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>&nbsp;
                        <div class="form-group jsclass classmatiere">
                                <?php   
                                        $options = array('0' => array('Choisir une matière'));
                                echo $this->Form->select('matieres_id',$options, array('label' => 'Matière *','class'=>'form-control','id' => 'idmatiere'));

                                 ?> 
                        </div>
                    </td>

                </tr>
            </table>
<div class="contenu-form">

</div>

</div>

Aucune réponse