簡體   English   中英

無法從列表中獲取選定的值(jsp,sevlet)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM