抱歉我的英文不好:) 有人能帮助我吗我创建了包含员工姓名的列表。当您点击名称时,每个员工都应该拥有自己的页面,并提供有关选择员工的信息。 形式如下:
<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中获取的所有数据,当我这样做时,我只获得列表中第一个员工的信息,但它并不适用于每个员工。
答案 0 :(得分:3)
<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>
答案 1 :(得分:0)
当你做
时<input type="hidden" name="fio" value="<%=dataList4.get(i)%>">
在循环中,您将创建许多具有相同名称的行(检查HTML源代码)
使用GET并将此参数附加到url或create 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获取值并代表您提交。
答案 2 :(得分:-1)
我认为你的循环应该进入<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");
等