Bonjour.
Pour mon appli, sur une page, j'ai un select (fait avec Struts2).
Afin de pouvoir faire une "mise à jour" du select suite envoi de données dans la base, celui-ci est dans une jsp différente (donc include dans la page).
Dans mon code de ma JSP, j'ai
Et la page include :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <div id="select_employe" class="hidden col-md-3 input-group"> <s:include value="/WEB-INF/views/resultaddemploye.jsp"/> </div>
Au chargement de la page et actualisation de celle-ci, voici le code que j'obtiens sur mon navigateur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <%@ taglib uri="/struts-tags" prefix="s"%> <s:if test="employes != null"> <!-- --------------------------------------------------- Select Employés --------------------------------------------------- --> <s:select class="form-control" list="employes" name="idEmploye" listKey="idEmploye" listValue="%{nomEmploye + ' ' + prenomEmploye}" value="idEmploye" id="selectEmploye" emptyOption="true" required="required"/> <!-- ------------------------------------------------------------------------------------------------------------------------- --> </s:if> <s:else> <select class="form-control"></select> </s:else> <span class="input-group-addon" id="basic-addon-client" data-toggle="tooltip" title="Ajouter un nouvel employe"><span class="glyphicon glyphicon-plus-sign" id="ajout-client" aria-hidden="true" data-toggle="modal" data-target="#modal-ajout"></span></span>
Mais après avoir saisi de nouvelle info via une modal et envoi des infos via requête ajax, ma base se met à jour et mon select aussi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 <div id="select_employe" class="hidden col-md-3 input-group"> <!-- --------------------------------------------------- Select Employés --------------------------------------------------- --> <select name="idEmploye" id="selectEmploye" class="form-control" required="required"> <option value=""></option> <option value="14">NEMARRE Jean</option> <option value="15">MACHIN Bidule</option> <option value="16">TRUC Muche</option> <option value="17">TITI Toto</option> <option value="18">DUPOND Pierre</option> <option value="19">AZERTY Uiop</option> <option value="20">QSDFG Hjklm</option> <option value="21">WXCV Bn</option> </select> <!-- ------------------------------------------------------------------------------------------------------------------------- --> <span class="input-group-addon" id="basic-addon-client" data-toggle="tooltip" title="Ajouter un nouvel employe"><span class="glyphicon glyphicon-plus-sign" id="ajout-client" aria-hidden="true" data-toggle="modal" data-target="#modal-ajout"></span></span> </div>
Voici le nouveau code html de mon navigateur après "mise à jour" de la div :
Pourquoi, j'ai maintenant un tableau et ma span avant la fermeture de la dive à disparue ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <div id="select_employe" class="col-md-3 input-group"> <!-- --------------------------------------------------- Select Employés --------------------------------------------------- --> <tr> <td class="tdLabel"></td> <td class="tdInput"> <select name="idEmploye" id="selectEmploye" class="form-control" required="required"> <option value=""></option> <option value="14">NEMARRE Jean</option> <option value="15">MACHIN Bidule</option> <option value="16">TRUC Muche</option> <option value="17">TITI Toto</option> <option value="18">DUPOND Pierre</option> <option value="19">AZERTY Uiop</option> <option value="20">QSDFG Hjklm</option> <option value="21">WXCV Bn</option> <option value="22">TATA Titi</option> </select> </td> </tr> <!-- ------------------------------------------------------------------------------------------------------------------------- --> </div>
Je pense pas que se soit utile si vous voulez, je vous donne le js de la requête ajax :
Soyons fou, je vous donne même l'action correspondante du fichier struts.xml :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $('#btn_save').on('click', function(){ $.ajax({ url : 'addEmploye', type: 'POST', data : {nomEmploye : $('#nom_employe').val(), prenomEmploye : $('#prenom_employe').val()}, dataType : 'html', success : function(html){ $('#select_employe').html(html); }, error : function(xhr, ajaxOptions, thrownError){ alert('Un probléme est survenu ! ' + thrownError); } }) })
et même la méthode qui traite les données coté Java :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 <action name = "addEmploye" class="sii.dsi.action.TempsTravailAction" method="AddEmploye"> <result name="success">/WEB-INF/views/resultaddemploye.jsp</result> </action>
Une idée de comment ne pas avoir cette différence de code et avoir le code que j'ai au chargement de la page ??
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public String AddEmploye() { Employe employe = new Employe(); DAO<Employe> employeDao = DAOFactory.getEmployeDao(); employe.setNomEmploye(nomEmploye); employe.setPrenomEmploye(prenomEmploye); employeDao.create(employe); employes = employeDao.findAll(); return "success"; }
Merci d'avance pour votre aide.
Partager