formulaire dans un tableau
bonjour,
dans un projet que je suis en train de réaliser, je récupère la liste des utilisateurs de l'appli, je les affiche dans un tableau (à l'aide de la balise display:table) et dans ce tableau je met 2 colones en plus : une pour supprimer et une pour editer.:D
code dans ma jsp :
Code:
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
| <div>
<display:table name="sessionScope.listUsers" requestURI="adminUser.do" sort="external" defaultsort="1" pagesize="10" export="true">
<html:form action= "/adminUser">
<html:hidden property="whatToDo" value="default"/>
<display:column property="login" titleKey="administration.adminUsers.user.text.TitreColLogin"/>
<display:column property="password" titleKey="administration.adminUsers.user.text.TitreColPassword"/>
<display:column property="id_group" titleKey="administration.adminUsers.user.text.TitreColId"/>
<display:column titleKey="administration.adminUsers.user.boxDelete">
<%--<html:image src="http://tbn0.google.com/images?q=tbn:k4RbhwpzlhJXYM:http://www.genealogie22.org/06_forum/images/poubelle.gif"
property="toDelete" altKey="administration.adminUsers.user.delete" titleKey="administration.adminUsers.user.deleteUser" styleClass="bouton" onclick="deleteUser()"/>--%>
<img src="<%=request.getContextPath()%>/jsp/images/delete.jpg"
property="toDelete" altKey="administration.adminUsers.user.delete" titleKey="administration.adminUsers.user.deleteUser" styleClass="bouton" onclick="deleteUser()"/>
</display:column>
<display:column titleKey="administration.adminUsers.user.boxEdit">
<%--<html:image src="http://tbn0.google.com/images?q=tbn:rJrPXDCngB3QfM:http://edu.kde.org/contrib/graphics/renaud/crayon.jpg"
property="submit" altKey="administration.adminUsers.user.edit" titleKey="administration.adminUsers.user.editUser" styleClass="bouton" onclick="changeValue(this,'editUser')"/>--%>
<%--<img src="<%=request.getContextPath()%>/jsp/images/edit.jpg" property="toEdit" altKey="administration.adminUsers.user.edit"
titleKey="administration.adminUsers.user.editUser" styleClass="bouton" onclick="editUser(this,'editUser')"/>--%>
<%--<input type="image" src="<%=request.getContextPath()%>/jsp/images/edit.jpg" value="Submit" alt="Submit" />--%>
<%--<a href="./adminUser.do" onClick = "editUser(this,'editUser')"> <img src="<%=request.getContextPath()%>/jsp/images/edit.jpg"> </a>--%>
<input type="image" src="<%=request.getContextPath()%>/jsp/images/edit.jpg" onclick="editUser(this,'editUser')">
</display:column>
</html:form>
</display:table>
</div> |
(comme vous pouvez voir, ma derniere colone m'a servi de test pour toutes les méthodes de soumission de formulaire par une image)
dans "listUsers" est session j'ai mis une liste des User
le code javascript de la fonction editUser :;)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
function editUser(t,v) {
alert("edit");
alert(v);
t.form;
alert(v);
t.form.elements[0];
alert(v);
t.form.elements[0].value=v;
alert("Change value: "+t.form.elements[0].value);
alert("value is set");
return true;
} |
L'affichage se fait nickel en ce qui concerne les utilisateurs. Et les boutons aussi, et ils entrent dans les fonction javascript mais n'arrivent jms jusque au moment de soumettre le formulaire. le but de faire un formulaire la c'est que du coup je puisse récupérer le user de la ligne ou l'utilisateur aurait cliqué......
Lors de l'execution de la fonction editUser (j'ai mis le code de ma derniere fonction editUser, celle qui m'a servi à tester et trouver l'erreur), il se passe ceci :
- affichage d'une alert avec écrit dedans "edit" <=> alert("edit")
- affichage d'une alert avec écrit dedans "editUser" <=> alert(v) avec v=editUser avant la ligne de code t.form;
- affichage d'une alert avec écrit dedans "editUser" <=> alert(v) avec v=editUser apres la ligne de code t.form;
et c'est tout
=> j'en ai déduit que c'est laq ligne t.form.elements[0]; qui plante => ie que t.form.elements[0]; est null.....:roll: ou alors c'est t.form qui est null du coup t.form.elements[0] existe pas et ca plante?:roll: Qqn a une idée?
et surtout, pourquoi ca fait ca? ou alors le principe de faire un formulaire à partir de données à afficher qui sont initialisées dans l'action c'est pas possible?
Parce que la je vois vraiment plus.....Je sais plus quoi faire.
Anne
trouvé ou ca plante mais pas pourquoi
En fait pour vérifier ma théorie comme quoi c'est le t.form qui est nul...bah j'ai rajouté une ligne dans mon javascript (la ligne en rouge)
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| function editUser(t,v) {
alert("edit");
alert(v);
t.form;
alert(v);
if(t.form==null) alert("t.form est null");
t.form.elements[0];
alert(v);
t.form.elements[0].value=v;
alert("Change value: "+t.form.elements[0].value);
alert("value is set");
} |
... et voila à l'exécution il m'affiche bien l'alerte contenant le message : "t.form est null"
=> Donc j'avais bien vu ou est ce que mon javascript plantait : t.form est null.....:D :(
Maintenant mon ENORME problème est de savoir POURQUOI t.form est null : Je ne vois pas ou est l'erreur de déclaration du formulaire qui ferait que ce dernier serait nul.
A priori, en déclarant un form dans ma balise display:table, je pensais que ca allait me générer un formulaire par ligne de tableau...et dans chacun des formulaire il y aurait un utilisateur .... Mais apparemment ca ne marche pas.
Alors qqn sait-il comment je peux récupérer apres affichage d'une liste d'utilisateur dans un tableau un utilisateur d'une ligne sur laquelle je clique (je clique sur un bouton qui est sur la meme ligne que l'utilisateur que je veux sélectionner) ??????
Anne.