2010-01-31 3 views
0

J'ai deux liste sur ma demande sur jsp. Le premier est productGroupName, et le second est products.Comment reconnaître l'utilisateur sélectionné lesquels?

Maintenant, je montre ces comme ci-dessous.

<html:form action="/priceOrder"> <table width="100%" id="tableStyle" style="font: message-box;padding: 20px;"> 
     <logic:iterate id="productGroups" name="productGroup"> 
     <tr> 
      <td> 
      <h3 style="background-color: #720D00; color: white;"><bean:write 
       name="productGroups" property="prodGroupName" /></h3> 
      <table width="100%" id="tableStyle" style="font: message-box; color: white; padding: 20px; background: #F15A00;"> 
       <tr> 
        <td width="200px"><strong>Product Name</strong></td> 
        <td width="100px"><strong>How Many</strong></td> 
        <td><strong>Info</strong></td> 
       </tr> 
       <logic:iterate id="product" name="products"> 
       <tr> 
        <c:if test="${(productGroups.prodGroupID) == (product.prodGroupID)}"> 
         <td> 
          <html:checkbox property="productChecked" ><bean:write name="product" property="prodName"/></html:checkbox>         <br /> 
         </td> 
         <td><html:text property="quantity" styleId="check" size="5"/></td> 
         <td><bean:write name="product" property="prodDesc" /></td> 
        </c:if> 
       </tr> 
       </logic:iterate> 
      </table> 
      </td> 
     </tr> 
    </logic:iterate> 

     <tr align="center" style="background-color: #F15A00;"><td height="50px"> 
       <html:submit styleId="buton" property="method"><bean:message key="button.order" /></html:submit> 
     </td></tr> 
     <tr><td></td></tr> 
    </table></html:form> 

Comme vous le voyez d'abord j'itérer productGroupNames, montrant si productID est égal à productGroupID sous productGroupName. Mais j'ai un problème en obtenant la case à cocher et l'information de quantité. J'ai besoin de quel produit est vérifié et combien de ce qui est voulu.

Répondre

0

Au lieu de soumettre directement un formulaire, soumettez-le via une fonction JS. Dans votre fonction JS, puisque vous itérez votre liste et donnez le même nom à la case à cocher et au champ de texte, vous obtiendrez un tableau avec le même nom. C'est que vous obtiendrez un tableau des ID. Vous pouvez obtenir l'index de la case à cocher sélectionnée, obtenir la quantité, obtenir l'élément de liste correspondant et remplir des variables de formulaire cachées séparées avec la valeur. Puis soumettez-le.

Une approche alternative serait d'avoir une variable cachée associée à chaque case à cocher qui fournit un certain mappage entre la liste et la case à cocher.

0

Je ne fais pas Struts, mais leur documentation indique au moins que vous avez besoin du <html:multibox> pour cela.

Questions connexes