2013-03-25 104 views
1

我有一個表格顯示來自數據庫的數據。該表有3列,第一個是複選框。如何將動態更改的文本框值存儲爲複選框值?

<sql:setDataSource var="datasource" driver="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost/PhoneBookDB" user="root" 
    password="12345" /> 

<sql:query var="pbook" dataSource="${datasource}"> 
    SELECT * FROM phoneBook 
</sql:query> 

<html:form action="/PhoneBookAction.do" method="post" >   
    <table align="center" bgcolor="Khaki" border="5" bordercolor="SaddleBrown" cellpadding="10"> 
     <thead> 
      <tr> 
       <td align="center" ><b>Select</b></td> 
       <td align="center" ><b>Name</b></td> 
       <td align="center" ><b>Phone Number</b></td> 
      </tr> 
     </thead> 

<c:forEach items="${pbook.rows}" var="row"> 
    <tr> 
    <td align="center"> <input type="checkbox" align="middle" name="record" value="${row.id},${name},${pNum}"> </td> 
    <td> <input type="text" name="name" maxlength="30" value="${row.c_name}" > </td> 
    <td> <input type="text" name="pNum" maxlength="10" value="${row.p_num}"> </td> 
    </tr> 
</c:forEach> 

    </table> 
    <html:submit property="method" value="Edit" />  
    <html:submit property="method" value="Delete" /> 
</html:form> 

我希望用戶能夠UPDATE從JSP本身列名稱電話號碼的值。我不知道如何在文本框中將更新值設置爲複選框的值屬性,以便可以將更新後的值發送到servlet,然後發送到模型,以便在DB上進行操作。
我想解決這個問題,而不使用JavaScript。
請幫忙!謝謝......

回答

1

只需將行ID作爲複選框的值傳遞。不要在checikbox值上附加名稱和pNum。

提交時,在您的操作類中,根據需要將名稱和pNum附加到rowId。

我希望這會有所幫助。我沒有看到將name和pNum附加到row.id作爲jsp頁面本身的複選框值。

+1

嗨,@Deepak謝謝你的回覆。我需要從JSP傳遞名稱和pNum,因爲我想在數據庫上執行** UPDATE **。你能否詳細說明在行動課程中追加姓名和pNum?據我瞭解,這將需要一個'request.getParameterValues(「名稱」);'在for循環? – 2013-03-25 11:34:41

+0

在您的servlet/Acton類上,爲所有屬性執行request.getParameter()並將它們附加分隔的逗號。您將獲得所需的字符串值。 – Deepak 2013-03-26 05:53:14

+1

謝謝!我設法解決了這個問題。在JSP和'request.getParameter(「name_」+ record [i])中''input type =「checkbox」align =「middle」name =「record」value =「$ {row.id}」> Action類中的request.getParameter(「pNum_」+ record [i])''。 – 2013-03-26 11:01:08