[英]Couldn't get selected value from list(jsp, sevlet)
對不起,我的英語不好:)有人可以幫我嗎。 我創建了帶有員工姓名的列表。 單擊名稱時,每個員工都應該有自己的頁面,其中包含有關所選員工的信息。 這是表格:
<form name="submitForm" method="get" action="zakaz" id="form1" class="dropdown-menu">
<%for(int i=0;i<dataList4.size();i++){%>
<input type="hidden" name="fio" value="<%=dataList4.get(i)%>">
<ul class="dropdown-menu" style="width:500px;">
<li><a href=# onclick="document.forms['form1'].submit();return false;"><%=dataList4.get(i)%></a></li>
</ul>
<%}%>
</form>
這是servlet:
String fio = request.getParameter("fio");
String query = "select * from culture where name like'"+fio+"'";
try{
try (Statement s = con.createStatement()) {
s.executeQuery(query);
rs = s.getResultSet();
while (rs.next()) {
dataList4.add(rs.getString("name"));
dataList4.add(rs.getString("room"));
dataList4.add(rs.getString("number"));
}
rs.close();
}
}catch (Exception e) {
System.out.println("Exception is ;" + e);
}
request.setAttribute("dataList4",dataList4);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("/zakaz.jsp");
dispatcher.forward(request, response);
並轉發到另一個JSP:
<body>
<%
List booklist=new ArrayList();
booklist=(ArrayList)request.getAttribute("dataList4");
for(int i=0;i<booklist.size();i++){
booklist.get(i);
}
%>
<ul>
<li>ФИО: <span><%=booklist.get(0) %></span></li>
<li>Кабинет:<span> <%=booklist.get(1) %></span></li>
<li>Телефон: <span><%=booklist.get(3) %></span> </li>
</ul>
當我這樣做的時候,所有數據都來自db Mysql,我只獲得列表中第一位員工的信息,但並不是每位員工都可以使用。
<form name="submitForm" method="get" action="zakaz" id="form1" class="dropdown-menu">
<input type="hidden" name="fio" id="fio" >
<ul class="dropdown-menu" style="width:500px;">
<%for(int i=0;i<dataList4.size();i++){%>
<li><a href="javascript:void(0)" onclick="submitForm('<%=dataList4.get(i)%>')"><%=dataList4.get(i)%></a></li>
<%}%>
</ul>
<script>
function submitForm(name){
document.getElementById("fio").value = name;
document.forms['form1'].submit();
// return false;
}
</script>
當你做
<input type="hidden" name="fio" value="<%=dataList4.get(i)%>">
在一個循環中,您將創建許多具有相同名稱的行(請檢查HTML源代碼)
使用GET並將此參數附加到url或創建和數組fio
編輯
您的html看起來像
<form name="submitForm" method="get" action="zakaz" id="form1" class="dropdown-menu">
<input type="hidden" name="fio" value="123">
<input type="hidden" name="fio" value="234">
<input type="hidden" name="fio" value="345">
<ul class="dropdown-menu" style="width:500px;">
<li><a href=# onclick="document.forms['form1'].submit();return false;">123</a></li>
<li><a href=# onclick="document.forms['form1'].submit();return false;">234</a></li>
<li><a href=# onclick="document.forms['form1'].submit();return false;">345</a></li>
</ul>
我將從表單POST更改為GET
<a href="myServlet?fio='<%=dataList4.get(i)%>'">123
或使用jquery / javascript獲取值並代表您提交。
我認為您的循環應該在<ul>
標記內
<form name="submitForm" method="get" action="zakaz" id="form1" class="dropdown-menu">
<ul class="dropdown-menu" style="width:500px;">
<%for(int i=0;i<dataList4.size();i++){%>
<input type="hidden" name="fio<%=i%>" value="<%=dataList4.get(i)%>">
<li><a href=# onclick="document.forms['form1'].submit();return false;"><%=dataList4.get(i)%></a></li>
<%}%>
</ul>
</form>
所有元素的名稱也相同。 因此,您必須更改該name="fio<%=i%>"
。
然后,您可以通過以下方式在您的servlet中訪問它:
String fio = request.getParameter("fio0");
String fio = request.getParameter("fio1");
等等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.