Formulaire conserver les données

Résolu/Fermé
David - 3 août 2007 à 12:58
 toujaj - 7 juin 2008 à 00:51
Bonjour,

Voilà mon problème:

Je propose un formulaire (form 1), quand l'internaute valide, une page de contrôle de la saisie (controle 1) pour l'internaute (j'utilise l'input hiden pour conserver les données) apparait.

Lorsque l'internaute à vérifier et valide, un second formulaire (form 2) apprait, avec le même principe de page de contrôle (contrôle 2).

Enfin, la dernière page (page finale) centralise toutes les réponses saisies par l'internaute.

Mon problème est que les données de la de form 1 se tranmettent bien à Controle 1 mais pas à contrôle 2 et à page finale.

En quelque sorte, les données se perdent d'une page à l'autre.

Auriez vous une idée sur mon problème ?

Merci

David

6 réponses

JoloKossovar Messages postés 111 Date d'inscription mercredi 1 août 2007 Statut Membre Dernière intervention 5 septembre 2007 33
3 août 2007 à 15:17
Salut ^^
je suppose que tu utilise Struts ?

Si tel est le cas, tu n'as pas besoin d'avoir une page de control de saisie, tu peux géré ca avec la fonction validate de ton Form.

Pour ton probleme, il suffirai de garder tes variables que tu transferai de control1 a form 2 et de form 2 a control2(logique) en passant par les jsp, avec des requestSetparameters et des getparameters. Tu met tes variables dans tes forms en hidden pour les envoyer au controlleurs. Meme si le controlleurs n'agit pas sur ces varaibles tu peux toujours les garder ;)

Sinon, tu peux faire une classe metiers géantes ou tu mettrai toutes les varaibles qui t'interessent afin de les valider a la fin(page finale).

est ce clair ? ^^
1
MErci beaucoup pour ton aide, j'ai trouvé mon erreur. j'avais placé au mauvais endroit les input.

Maintenant ça marche

Encore merci
0
Bonjour, désolé de remonter cet ancien topic mais ça correspond tout à fait à mon problème.

Donc voilà, je débute sur Struts et j'ai le même problème que David mais je n'ai pas réussis à le résoudre.
Je m'explique, en gros j'ai un premier formulaire, quand l'internaute valide on passe directement au 2eme formulaire, et lorsqu'on le valide on a un récapitulatif de toutes les informations saisies dans les 2 formulaires.

Comme David, les données saisies dans le premier formulaire ne s'affichent pas à la fin ( null ). Et ce même en passant les données du premier formulaire en caché dans le 2eme. Bon, j'aimerai bien trouver une solution sans avoir à les passer de cette manière de toute façon... mais j'ai juste essayé dans le doute.

Voilà mes fichiers (j'ai enlevé les parties inutiles pour plus de lisibilité) :






[--------------------------formulaire.personne.jsp-------------------------------]

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

...

<html:form action="/validerFormulaire1">
	<table>
		<tr>
			<td>Pseudonyme</td>
			<td><html:text property="pseudo" size="15" /></td>
		</tr>
		<tr>
			<td>Mot de passe</td>
			<td><html:password property="mdp" size="15" redisplay="false" /></td>
		</tr>
		<tr>
			<td> <br></td>
		</tr>
		<tr>
			<td>Nom</td>
			<td><html:text property="nom" size="20"/></td>
		</tr>
		<tr>
			<td>Prénom</td>
			<td><html:text property="prenom" size="20" /></td>
		</tr>
		<tr>
			<td>Age</td>
			<td><html:text property="age" size="3"/></td>
		</tr>
	</table>
	<br><br>
	<table>
		<tr>
			<td><html:submit value="Valider"/></td>
			<td><html:reset value="Rétablir"/></td>
			<td><html:button property="btnEffacer" value="Effacer" onclick="effacer()"/></td>
		</tr>
	</table>
</html:form>


[-------------------------formulaire2.personne.jsp-----------------------------]

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>

<%

	// on récupère les données
	String pseudo = (String)request.getAttribute("pseudo");
	String mdp = (String)request.getAttribute("mdp");
	String prenom = (String)request.getAttribute("prenom");
	String nom = (String)request.getAttribute("nom");
	String age = (String)request.getAttribute("age");
	
%>

...

<html:form action="/validerFormulaire2">
	<table>
		<tr>
			<td>Adresse</td>
			<td><html:text property="adresse" size="50"/></td>
		</tr>
		<tr>
			<td>Code Postal</td>
			<td><html:text property="cp" size="5"/></td>
		</tr>
		<tr>
			<td>Ville</td>
			<td><html:text property="ville" size="20"/></td>
		</tr>
		<tr>
			<input text name="pseudo" value="<%=pseudo%>" type="hidden" />
			<input text name="mdp" value="<%=mdp%>" type="hidden"  />
			<input text name="nom" value="<%=nom%>" type="hidden"  />
			<input text name="prenom" value="<%=prenom%>" type="hidden"  />
			<input text name="age" value="<%=age%>" type="hidden"   />
		</tr>
	</table>
	

	
	<table>
		<tr>
			<td><html:submit value="Valider"/></td>
			<td><html:reset value="Rétablir"/></td>
			<td><html:button property="btnEffacer" value="Effacer" onclick="effacer()"/></td>
		</tr>
	</table>
</html:form>



[-----------------------resultat.personne.jsp-------------------------------]

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>


<%
	       // on récupère les données
	       String pseudo = (String)request.getAttribute("pseudo");
	       String mdp = (String)request.getAttribute("mdp");
	       String nom = (String)request.getAttribute("nom");
	       String prenom = (String)request.getAttribute("prenom");
	       String age = (String)request.getAttribute("age");
	       String adresse = (String)request.getAttribute("adresse");
	       String cp = (String)request.getAttribute("cp");
	       String ville = (String)request.getAttribute("ville");

%>

...

<table>
	<tr>
		<td>Pseudo</td>
		<td><%= pseudo %>
	</tr>
	<tr>
		<td>Mot de passe</td>
		<td><%= mdp %>
	</tr>

etc...


[----------------------struts-config.xml-----------------------------]

<struts-config>
               
	<form-beans>
		<form-bean 
			name="frmPersonne"       
		  	type="org.apache.struts.validator.DynaValidatorForm" 
		  >                    
		  	<form-property name="pseudo" type="java.lang.String" initial="" />
		  	<form-property name="mdp" type="java.lang.String" initial="" />
		  	<form-property name="nom" type="java.lang.String" initial="" />
		  	<form-property name="prenom" type="java.lang.String" initial="" />
		  	<form-property name="age" type="java.lang.String" initial="" />
		</form-bean>                     
		                           
		<form-bean                       
			name="frmPersonne2"     
			type="org.apache.struts.validator.DynaValidatorForm"
		>                                
			<form-property name="adresse" type="java.lang.String" initial="" />
			<form-property name="cp" type="java.lang.String" initial="" />
			<form-property name="ville" type="java.lang.String" initial="" />			
		</form-bean>              
	</form-beans>                     

	<action-mappings>                 
		<action                   
			path="/validerFormulaire1"       
			name="frmPersonne" 
			scope="session"
			validate="true"
			input="/erreurs.do"
			type="FormulaireAction"
		>
			<forward name="reponse" path="/formulaire2.do" />
		</action>
		
		<action 
			path="/validerFormulaire2"
			name="frmPersonne2"
			scope="session"
			validate="true"
			input="/erreurs.do"
			type="FormulaireAction2"
		>
			<forward name="reponse2" path="/resultat.do" />
		</action>

		<action 
			path="/erreurs"
			parameter="/vues/erreurs.personne.jsp"
			type="org.apache.struts.actions.ForwardAction" 
		/>
		
		<action
			path="/formulaire"
			parameter="/vues/formulaire.personne.jsp"
			type="org.apache.struts.actions.ForwardAction"
		/>
		
		<action 
			path="/formulaire2"
			parameter="/vues/formulaire2.personne.jsp"
			type="org.apache.struts.actions.ForwardAction"
		/>
		
		<action 
			path="/resultat"
			parameter="/vues/resultat.personne.jsp"
			type="org.apache.struts.actions.ForwardAction"
		/>
	</action-mappings>

	<plug-in className="org.apache.struts.validator.ValidatorPlugIn">
		<set-property
			property="pathnames"
			value="/WEB-INF/validator-rules.xml,/WEB-INF/validation.xml"
		/>
	</plug-in>

	<message-resources parameter="ressources.personneressources" null="false"/>

</struts-config>



Voilà, désolé pour la présentation, ça fait quand même un peu "fouilli"...
Le problème vient peut être du fait que j'utilise un FormulaireAction pour chaque formulaire (FormulaireAction pour le premier, et FormulaireAction2 pour le 2eme) ?
Mais je ne vois pas vraiment comment organiser le FormulaireAction pour qu'il s'occupe de 2 formulaires différents...


0
Oulà, désolé pour la page déformée <.<
La prévisualisation ne m'avait pas montré ça >.>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ExpertDebutant
27 mars 2008 à 16:16
Salut,tu peux utiliser les balises nested lorsque tu aura plusieurs formulaire.
ou bien tu envoi tes truc par session
0
Bonjour,
j'utilise le framework validator pour gerer mes formulaires ,
alors j ai testé pour une premier form ça marche ,
mais quand j ai voulu l'utiliser pour un deuxieme formulaire ça marche pas je sais pa pkoi.
voilà mon fichier validation.xml :

<form-validation>

<formset>
<form name="ChefProjetForm">
<field property="cheflog" depends="required">
<arg0 name="required" key="chef.name" />
</field>
<field property="chefpwd" depends="required">
<arg0 name="required" key="chef.pwd" />
</field>
</form>
</formset>
<formset>
<form name="AdminForm">
<field property="log" depends="required,maxlength,minlength">
<arg0 name="required" key="login.name" />
<arg0 name="maxlength" key="login.name" />
<arg0 name="minlength" key="login.name" />
<arg name="maxlength" key="${var:maxlength}" resource="false" position="1" />
<arg name="minlength" key="${var:minlength}" resource="false" position="1"/>
<var><var-name>maxlength</var-name><var-value>15</var-value></var>
<var><var-name>minlength</var-name><var-value>3</var-value></var>
</field>
<field property="pwd" depends="required,maxlength,minlength">
<arg0 name="required" key="login.password" />
<arg0 name="maxlength" key="login.password" />
<arg0 name="minlength" key="login.password" />
<arg1 name="maxlength" key="${var:maxlength}" resource="false" position="1" />
<arg1 name="minlength" key="${var:minlength}" resource="false" position="1"/>
<var><var-name>maxlength</var-name><var-value>15</var-value></var>
<var><var-name>minlength</var-name><var-value>3</var-value></var>
</field>
</form>

</formset>

</form-validation>

cela ça marche unikement pr adminForm ????le deuxieme non,les messages associés ne s affichent pa
SVP aidez moi je suis bloké!!!
0