IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

Grosse différence de code après requête ajax


Sujet :

Struts 2 Java

  1. #1
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut Grosse différence de code après requête ajax
    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.

  2. #2
    Modérateur
    Avatar de OButterlin
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    7 310
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 7 310
    Points : 9 522
    Points
    9 522
    Billets dans le blog
    1
    Par défaut
    Comme ta méthode ajax met à jour tout le contenu du <div> pour remplacer ton <select> (sans remettre le code d'ajout) c'est normal.
    Il suffit de mettre le <select> à l'intérieur d'un autre conteneur et de demander à ta méthode ajax de mettre à jour ce nouveau conteneur.
    Il y a d'autres façons de faire mais c'est certainement la plus simple à ce stade
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Débutant   Avatar de FCL31
    Profil pro
    Inscrit en
    Août 2007
    Messages
    885
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 885
    Points : 267
    Points
    267
    Par défaut
    Merci beaucoup.

    C'est tout con (bon, hier j'étais fatigué ).

    Ça me pète un peut la mise en forme voulue mais je dois pouvoir arranger ça ^^.

    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plugin non fonctionnel après requête AJAX
    Par florianlyon dans le forum jQuery
    Réponses: 8
    Dernier message: 05/07/2011, 08h56
  2. redirection après requête AJAX
    Par splifferwolf dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 07/06/2010, 15h58
  3. [AJAX] Réponse après requête ajax
    Par bisvan dans le forum AJAX
    Réponses: 2
    Dernier message: 10/12/2009, 17h08
  4. plus de javascript aprés requéte ajax pour mon menu
    Par pouktoro dans le forum jQuery
    Réponses: 2
    Dernier message: 23/10/2009, 13h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo