2013-10-28 98 views
-1

我有一個表顯示項目的長列表,我想知道如何編輯字段並提交表單來更新它們?如何編輯表格的字段?

<form name="edit" method="POST" action="edit"> 
    <table border="4"> 
     <tbody> 
      <c:forEach items="${basket.items}" var="item"> 
       <tr> 
        <td> 
         <input name="item.id" value="${item.id}"/> 
        </td> 
        <td> 
         <input label="Price" value="${item.product.price}"/> 
         <br/> 
        </td> 
       </tr> 
      </c:forEach> 
     </tbody> 
    </table> 
    this is a new one 
    <input id="edit" type="submit" name="edit" value="Edit"/> 
</form> 
+0

您可能需要使用AJAX從您發佈的內容。 – Felix

回答

2

您正在使用Struts2的,與JSTL和EL,而不是Struts標籤和OGNL ...有,迫使你放棄大部分的框架機制的具體原因是什麼?

也就是說,您的輸入無效(沒有指定類型),HTML中的「這是一個新的」句子似乎表示願意插入新行,而不是編輯現有的entres。你的描述和你的代碼似乎要求兩個不同的東西......插入一個新的,只需要調用另一個稱爲「add」而不是「edit」的動作(或另一個動作)的方法,發送一個單一元素和將其添加到集合中。沒有必要在這裏使用AJAX ...

如果相反,真正的問題是:

我怎麼可以編輯字段並提交表單更新嗎?

這是這樣的:

<s:form method="POST" action="edit"> 
    <table border="4"> 
     <tbody> 
      <s:iterator value="basket.items" var="item" status="ctr"> 
       <tr> 
        <td> 
         <s:textfield name="item[%{#ctr.index}].id" /> 
        </td> 
        <td> 
         <s:textfield name="item[%{#ctr.index}].product.price" /> 
        </td> 
       </tr> 
      </s:iterator> 
     </tbody> 
    </table> 
    <s:submit value="Edit"/> 
</form> 
+0

我用你的答案,但生成html表的格式是不同的請看看我​​的其他問題http://stackoverflow.com/questions/19647284/how-to-format-a-table – J888

+1

是的,簡單的主題FTW –

1

我建議你使用jquery進行AJAX調用來更新新的。然後在成功處理程序中,您可以將新行添加到現有表中。在這之前,你需要給你的表適當的ID,這樣它更容易使用JQUERY。

var newLine = document.createElement("tr"); 
var cellName = document.createElement("td"); 
$(cellName).text("itemId"); 
$(newLine).append(cellName); 
// similarly create other td's 
$("#modelTable").append(newLine);// replace modelTable by the id of your table 
相關問題