Retrieving multiple textbox values with same name from JSP in Servlet
21,097
Solution 1
You do not name the dynamically created input elements (to "words" or "meaning")
var element2 = document.createElement("input");
element2.name = "words";
element2.type = "text";
cell2.appendChild(element2);
Solution 2
If you have a form like that:
<form method="post">
<input type="text" name="words"><br>
<input type="text" name="words"><br>
<input type="submit">
</form>
Sends if you put one and two in the textboxs
words=one&words=two
For getting,
String[] words = request.getParameterValues("words");
Author by
user1371033
Updated on July 05, 2022Comments
-
user1371033 almost 2 years
I am trying to pass values of textbox with same name from JSP to servlet but not able to accomplish this task.
I tried using this in servlet but i only get one textbox value:
String[] words = request.getParameterValues("words"); String[] meanings = request.getParameterValues("meaning");
My javascript which helps in generating multiple table rows is:
<SCRIPT language="javascript"> function addRow(tableID) { var table = document.getElementById(tableID); var rowCount = table.rows.length; var row = table.insertRow(rowCount); var cell1 = row.insertCell(0); var element1 = document.createElement("input"); element1.type = "checkbox"; cell1.appendChild(element1); var cell2 = row.insertCell(1); var element2 = document.createElement("input"); element2.type = "text"; cell2.appendChild(element2); var cell3 = row.insertCell(2); var element3 = document.createElement("input"); element3.type = "text"; cell3.appendChild(element3); } function deleteRow(tableID) { try { var table = document.getElementById(tableID); var rowCount = table.rows.length; for(var i=0; i<rowCount; i++) { var row = table.rows[i]; var chkbox = row.cells[0].childNodes[0]; if(null != chkbox && true == chkbox.checked) { table.deleteRow(i); rowCount--; i--; } } }catch(e) { alert(e); } } </SCRIPT>
The Html table generating multiple rows:-
</body> <form name="managelist" action="../createlistpath" method="post"> <TABLE id="dataTable" width="600px" border="0"> <tr> <td><b> List Name</b></td> <td colspan="2"><input type="text" name="listname"></td> </tr> <tr > <td><b>Select</b></td> <td><b>Word</b></td> <td><b>Meaning</b></td> </tr> <TR > <TD><INPUT type="checkbox" name="checkbox"/></TD> <TD> <INPUT type="text" name="words" /> </TD> <TD> <INPUT type="text" name="meaning" /> </TD> </TR> </TABLE> <INPUT type="button" value="Add Row" onclick="addRow('dataTable')" /> <INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" /> <br> <input type="submit" value = "submit" name="submit"> </form> </body>
-
user1371033 almost 12 yearshey thanks man! I wonder how that slipped from my mind :P thanks once again :)
-
Ram Patra over 8 yearsMy fields are like this
<input type="text" name="words[item1]">
,<input type="text" name="words[item2]">
and so on. How do I get this at the servlet end?