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 1 Java Discussion :

Liste de cases précochées dans un formulaire


Sujet :

Struts 1 Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut Liste de cases précochées dans un formulaire
    Bonjour!

    Je souhaite faire un formulaire de modification.
    J'explique : Mon utilisateur va visionner dans un tableau l'ensemble des groupes d'utilisateurs de l'appli. Il voit donc dans son tableau l'id du groupe, le nom du groupe et les autorisations. Les autorisations sont listées avec des html:checkbox non editables devant (cochée = accessible, non cochée = interdit d'acces)...
    Il sélectionne le groupe qu'il veut modifier (déja fait, j'ai le bon objet dans mon action, rempli avec les bons champs). Maintenant j'affiche en dessous du tableau le formulaire de modification :
    possibilité de saisir :
    - un nouveau nom
    - de cocher les fonctionnalités qu'il veut lui mettre.
    Dans ce formulaire j'ai donc :
    - un champ texte , le nouveau nom de mon groupe d'utilisateur
    - une ligne par fonctionnalité de l'appli (nombre de lignes variables puisque le nombre de fonctionnalité n'est pas fixe) : sur cette ligne on trouve une checkbox suivie du nom de la fonctionnalité.

    Pour afficher tout ca pas de problème. Pour récupérer tout ca pas de problème.... seulement il m'est impossible de pré-cocher mes checkbox. Je pré-rempli mon texte de nouveau nom de groupe avec le nom du groupe avant changement, mais je ne peux pas pré-cocher mes cases.

    Mon code :
    jsp :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    <div id = "formuChangeGroup">
    	<table class="default">
    		<html:form action= "/adminGroup" focus="idProfile">
    			<tr>
    				<td><html:hidden property="whatToDo" value="default"/></td>
    			</tr>
    			<tr>
    				<td><bean:message key="administration.adminGroups.group.text.TitreColGroupName" /></td>
    				<td></td>
    				<td><html:text property="nameProfile"/></td>
    			</tr>
    			<tr>
    				<td><bean:message key="administration.adminGroups.group.text.TitreColAccessibility" /></td>
    				<logic:iterate id="autorisation" name="listFonctionnalitiesAuthorized" type="io.classesBase.Fonctionnality">
    					<td>
    						<tr>
    							<td></td>
    							<%if (autorisation.isAccessible()) {%>
    								<td><input type="checkbox" property="choix" value="<%=autorisation.getIdFonctionnalityToString()%>" checked></td>
    							<%} else {%>
    								<td><input type="checkbox" property="choix" value="<%=autorisation.getIdFonctionnalityToString()%>"></td>
    							<%}%>
    							<td><bean:write name="autorisation" property="nameFonctionnality"/><td>
    						</tr>
    					<td>
    				</logic:iterate>
    			</tr>
    			<tr>
    				<td></td>
    				<td></td>
    				<td>
    					<html:submit onclick="changeGroup(this,'changeGroup')"><bean:message key='administration.adminGroups.group.button.changeGroup'/></html:submit>
    					<html:cancel onclick="setWhatToDo(this,'changeGroupCancel')"><bean:message key='administration.adminGroups.group.button.changeGroupCancel'/></html:cancel>
    				</td>
    			<tr>
    		</html:form>
    	</table>
    </div>
    Je met en session dans mon action l'attribut "listFonctionnalitiesAuthorized" qui est une liste d'objets de type Fonctionnality :
    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
    public class Fonctionnality {
     
    	private int idFonctionnality;
    	private int idFonctionnalityPere;
    	private String nameFonctionnality;
    	private String pageFonctionnality;
    	private boolean accessible;
     
    // tous les getters & setters
    // + les getters & setters suivants :
    public String getIdFonctionnalityToString() {
    		return ""+idFonctionnality;
    	}
     
    	public void setIdFonctionnalityToString(String idFonctionnalityString) {
    		this.idFonctionnality = new Integer(idFonctionnalityString).intValue();
    	}
    Mon Form est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public class AdminGroupForm extends ActionForm {
    	private String idProfile;
    	private String nameProfile;
    	private ArrayList<Fonctionnality> fonctionnalities;
     
    	private String[] choix;
     
    	private String whatToDo;
    // getters & setters qu'il faut
    Voilà!

    Je vois pas comment je peux faire pour précocher les bonnes checkboxes
    si quelqu'un a une idée svp......?

  2. #2
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" property="choix" value="<%=autorisation.getIdFonctionnalityToString()%>" checked>
    deja cette syntaxe est un peu bizarre, property n'existe pas pour les input checkbox

    Essaye juste d'ecrire pour voir ce qui se passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox" checked/>
    ou ca quand ce n'est pas coche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="checkbox"/>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    En fait j'avais gardé cette syntaxe parce que a la base j'avais des :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <html:checkbox property="choix" value="<%=autorisation.getIdFonctionnalityToString()%>">
    Mais j'ai mis des input car je ne pouvais pas à la fois précocher la checkbox et récupérer ensuite la valeur de la case à la soumission du formulaire.

    Bref, ok va pour la syntaxe suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <%if (autorisation.isAccessible()) {%>
    <td><input type="checkbox" checked></td>
    <%} else {%>
    <td><input type="checkbox"></td>
    <%}%>
    Mais comment est ce que je fais alors pour récupérer la valeur des cases à cocher une fois que l'utilisateur soumet le formulaire?

  4. #4
    Membre Expert Avatar de willoi
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    1 355
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 355
    Par défaut
    Si je ne me trompe une case a cocher vaut 'on' si elle est cochee (tu peux le verifier avec un alert tout bete en javascript).
    Tu donne un nom a chaque case a cocher avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    name="case_<%=numero_ligne%>"
    N'oublie pas de definir et initialiser numero_ligne.
    Incremente la a chaque passage dans la boucle.


    Cote Action, tu recupere ces valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    request.getParameter("case_1");
    request.getParameter("case_2");
    request.getParameter("case_3");
    etc ...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    372
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 372
    Par défaut
    Merci infiniment

    Ca marche parfaitement.....

    Anne

Discussions similaires

  1. case à cocher dans un formulaire
    Par 4rn0_o dans le forum IHM
    Réponses: 2
    Dernier message: 30/08/2007, 08h16
  2. Case à cocher dans un formulaire access
    Par romulus34 dans le forum IHM
    Réponses: 10
    Dernier message: 23/01/2007, 15h42
  3. Liste des checkbox cochées dans un formulaire
    Par qwiskas dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 19/09/2006, 05h25
  4. Liste d'Objet OLE dans un Formulaire
    Par ivan7 dans le forum Access
    Réponses: 7
    Dernier message: 22/08/2006, 10h09
  5. cases à cocher dans un formulaire
    Par juliette2 dans le forum Access
    Réponses: 4
    Dernier message: 06/04/2006, 22h27

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