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
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>
Et la page include :
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>
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
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>
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.
Voici le nouveau code html de mon navigateur après "mise à jour" de la div :
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>
Pourquoi, j'ai maintenant un tableau et ma span avant la fermeture de la dive à disparue ??

Je pense pas que se soit utile si vous voulez, je vous donne le js de la requête ajax :
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);
        }
    })
})
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
<action name = "addEmploye" class="sii.dsi.action.TempsTravailAction" method="AddEmploye">
    <result name="success">/WEB-INF/views/resultaddemploye.jsp</result>
</action>
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
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";
}
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 ??

Merci d'avance pour votre aide.