消除jsp中的列重复性并使用javascript

消除jsp中的列重复性并使用javascript,javascript,database,jsp,drop-down-menu,Javascript,Database,Jsp,Drop Down Menu,我有5个JSP页面,r用来创建4个相关下拉列表,在选择最后一个下拉列表时,会显示一个表 代码如下: 第1页:index.jsp <%@page import="java.sql.*"%> <html> <head> <script language="javascript" type="text/javascript"> var xmlHttp var xmlHttp var global v

我有5个JSP页面,r用来创建4个相关下拉列表,在选择最后一个下拉列表时,会显示一个表 代码如下: 第1页:index.jsp

<%@page import="java.sql.*"%>
  <html>
  <head>  
  <script language="javascript" type="text/javascript">  
      var xmlHttp  
      var xmlHttp
  var global
  var state
  var district
      function showState(str){
  global=str;
      if (typeof XMLHttpRequest != "undefined"){
      xmlHttp= new XMLHttpRequest();
  }
  else if (window.ActiveXObject){
  xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (xmlHttp==null){
  alert("Browser does not support XMLHTTP Request")
  return;
  } 
  var url="state.jsp";
  url +="?count=" +str;
  xmlHttp.onreadystatechange = stateChange;
  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);

  }

  function stateChange(){   
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
  document.getElementById("state").innerHTML=xmlHttp.responseText   
  }   
  }
  function showCity(str){
  if (typeof XMLHttpRequest != "undefined"){
    xmlHttp= new XMLHttpRequest();
    }
  else if (window.ActiveXObject){
    xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
    }
  if (xmlHttp==null){
  alert("Browser does not support XMLHTTP Request")
  return;
  } 
  var url="city.jsp";
  state=str;
  url +="?count=" +str + " " + global;
  xmlHttp.onreadystatechange = stateChange1;
  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);
  }
  function stateChange1(){   
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
  document.getElementById("city").innerHTML=xmlHttp.responseText   
  }   
  }
  function showBank(str1){
  if (typeof XMLHttpRequest != "undefined"){
    xmlHttp= new XMLHttpRequest();
    }
  else if (window.ActiveXObject){
    xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
    }
  if (xmlHttp==null){
  alert("Browser does not support XMLHTTP Request")
  return;
  } 
  var url="bank.jsp";
  district=str1;
  url +="?count=" +str1;
  xmlHttp.onreadystatechange = stateChange2;
  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);
  }
  function stateChange2(){   
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
  document.getElementById("bank").innerHTML=xmlHttp.responseText   
  }   
  }
  function showPage(str2){
  if (typeof XMLHttpRequest != "undefined"){
    xmlHttp= new XMLHttpRequest();
    }
  else if (window.ActiveXObject){
    xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
    }
  if (xmlHttp==null){
  alert("Browser does not support XMLHTTP Request")
  return;
  } 
  var url="table.jsp";
  url +="?count=" +str2 + " " + state + " " + district;
  xmlHttp.onreadystatechange = stateChange5;
  xmlHttp.open("GET", url, true);
  xmlHttp.send(null);
  }
  function stateChange5(){   
  if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete"){   
  document.getElementById("bank").innerHTML=xmlHttp.responseText   
  }   
  }

  </script>  
  </head>  
  <body> 

  <select name='country' onChange="showState(this.value)" style="top:150px; position:absolute;">

   <option value="none">&nbsp;DBTL Phase&nbsp;</option>  

  <%
 java.sql.Connection con;
con=null;
{
 Class.forName("oracle.jdbc.driver.OracleDriver");
  con =     java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
  }
 Statement stmt = con.createStatement();  
 ResultSet rs = stmt.executeQuery("select DISTINCT DBTLdist from districts ORDER BY DBTLdist ASC");
 while(rs.next()){
 %>
  <option><%=rs.getString(1)%></option>  
  <%
 }
 %>
  </select>  

  <div id='state'>  

  <select name='state' style="left:200px; top:150px; position:absolute;"> 

   <option value="none">&nbsp;&nbsp;&nbsp;States&nbsp;&nbsp;&nbsp;</option> 

  <option value='-1'></option> 

  </select>  
  </div>  

  <div id='city' >  

  <select name='city' style="left:400px; top:150px; position:absolute;">  
   <option value="none">&nbsp;&nbsp;&nbsp;Districts&nbsp;&nbsp;&nbsp;</option>
  <option value='-1'></option>  
  </select>  
  </div>
 <div id='bank' >  

  <select name='bank' style="left:600px; top:150px; position:absolute;">  
   <option value="none">&nbsp;&nbsp;&nbsp;Banks&nbsp;&nbsp;&nbsp;</option>
  <option value='-1'></option>  
  </select>  
  </div>






  </body> 
  </html> 
但我想消除那种两面派想要这样的桌子

                   state      district       bank       branch
                   punjab     bathinda       SBI         ABC
                                                         PQR
                                                         XYZ

请帮助我做到这一点…谢谢,也请帮助我简化此代码…因为我是新来编码的

您必须跟踪列的最后一个值,并将其与新值进行比较。如果未更改,请抑制该值。如果更改,则显示该值。并在循环结束时将最后一个值设置为新值

那个。。。。这里是将此应用于其他列的位置

 String invalid_value = "some invalid value";
 String col1_old = invalid_value;
 .....
 while(rs1.next())
 {
    out.print("<tr style=\"text-align:center;\">");
    if(!col1_old.equals(rs1.getString(1)))
    {
          out.print("<td>"+rs1.getString(1)+"</td>");
    }
    else
    { 
           out.print("<td>&nbsp;</td>");
    }
    .....
     col1_old = rs1.getString(1);
    .....
    out.print("</tr>");
}
字符串无效\u value=“某些无效值”;
字符串col1\u old=无效的\u值;
.....
while(rs1.next())
{
输出。打印(“”);
如果(!col1_old.equals(rs1.getString(1)))
{
out.print(“+rs1.getString(1)+”);
}
其他的
{ 
输出。打印(“”);
}
.....
col1_old=rs1.getString(1);
.....
输出。打印(“”);
}

hey thanku,感谢您的支持,因为它工作得非常好……有一个问题是,该代码在oracle数据库ans BEA weblogic中工作得很好……但是在tomcat中使用MS SQL数据库时,无法使用相同的代码查看表行r……请帮助此代码应适用于任何数据库类型。但是,可能有些人不允许您对非字符串的字段执行rs1.getString。但是,当将rs1.getString(1)与col1_old进行比较时……它不是打印rs1.getString(1)的值,而是打印其他所有内容……即使是hello或rs1.getString(2)或(3)或(4)…它给出的错误是找不到数据…但是查询在SQL中运行良好…请帮助…我无法跟踪错误原因,因为我使用字段名而不是按数字。无论如何,这将使代码更清晰。rs.getString(“字段”);
<%@page import="java.sql.*"%>

<%
String district=request.getParameter("count");
out.println(district);
String buffer="<select name='bank' style='left:600px; top:150px; position:absolute;'      onChange='showPage(this.value);'><option value='-1'>Bank</option><option>All</option>";  

try
{
if(district.equals("All"))
{
java.sql.Connection con1;
con1=null;
 Class.forName("oracle.jdbc.driver.OracleDriver");
  con1 = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
 Statement stmt1 = con1.createStatement(); 
  ResultSet rs1 = stmt1.executeQuery("select * from banks ORDER BY bank_name ASC");  
   while(rs1.next()){
   buffer=buffer+"<option value='"+rs1.getString(1)+"'>"+rs1.getString(2)+"</option>";  
   }  
   }
   else
   {
java.sql.Connection con;
 con=null;
 Class.forName("oracle.jdbc.driver.OracleDriver");
  con = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
 Statement stmt = con.createStatement(); 
  ResultSet rs = stmt.executeQuery("select DISTINCT * from banks where bank_code IN (select bank_code from bankdetail where district_code='"+district+"') ORDER BY bank_name ASC");  
   while(rs.next()){
   buffer=buffer+"<option value='"+rs.getString(1)+"'>"+rs.getString(2)+"</option>";  
    }  
   }
 buffer=buffer+"</select>";  
 response.getWriter().println(buffer); 
}
catch(Exception e){
     System.out.println(e);
 }

%>
<%@ page import="java.sql.*" %>
<%@page import="java.util.*"%>
<%
String bank=request.getParameter("count");

StringTokenizer st = new StringTokenizer(bank," ");
   String bank_code=st.nextToken();
      String state=st.nextToken();
         String district=st.nextToken();
 String buffer="<select name='bank' style='left:600px; top:150px; position:absolute;' onChange='showPage(this.value);'><option value='-1'>Bank</option><option>All</option>";  

   try
    {
    if(district.equals("All"))
{
java.sql.Connection con1;
con1=null;
 Class.forName("oracle.jdbc.driver.OracleDriver");
  con1 =     java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
 Statement stmt1 = con1.createStatement(); 
  ResultSet rs1 = stmt1.executeQuery("select * from banks ORDER BY bank_name ASC");  
   while(rs1.next()){
   buffer=buffer+"<option value='"+rs1.getString(1)+"'>"+rs1.getString(2)+"</option>";  
    }  
    }
   else
   {
 java.sql.Connection con;
 con=null;
  Class.forName("oracle.jdbc.driver.OracleDriver");
   con = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
 Statement stmt = con.createStatement(); 
  ResultSet rs = stmt.executeQuery("select DISTINCT * from banks where bank_code IN (select bank_code from bankdetail where district_code='"+district+"') ORDER BY bank_name ASC");  
   while(rs.next()){
   buffer=buffer+"<option value='"+rs.getString(1)+"'>"+rs.getString(2)+"</option>";  
   }  
   }
  buffer=buffer+"</select>";  
  response.getWriter().println(buffer); 
 }
  catch(Exception e){
     System.out.println(e);
 }

%>

<html><body>
 <br><br><br>
<table width="900" border="1" style="top:250px; position:relative; ">
 <th>State</th><th>District</th><th>Bank Name</th><th>Branch Name</th>
 <%
  try
{
if(bank_code.equals("All"))
 {
java.sql.Connection con1;
 con1=null;
  Class.forName("oracle.jdbc.driver.OracleDriver");
  con1 = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
 Statement stmt1 = con1.createStatement(); 
  ResultSet rs1 = stmt1.executeQuery("SELECT DISTINCT states.State_Long,districts.District_Name,banks.bank_name,bankdetail.branch_name FROM bankdetail INNER JOIN states ON bankdetail.state_code=states.State_Code AND states.State_Code='"+state+"' INNER JOIN districts ON bankdetail.district_code=districts.District_Code AND districts.District_Code='"+district+"' INNER JOIN banks ON bankdetail.bank_code=banks.bank_code ");  
   while(rs1.next()){
   %>
   <tr style="text-align:center;" >
   <td><%out.print(rs1.getString(1));%></td>
   <td><%out.print(rs1.getString(2));%></td>
   <td><%out.print(rs1.getString(3));%></td>
    <td><%out.print(rs1.getString(4));%></td></tr>
    <%
    }
     }
     else
   {
   java.sql.Connection con1;
 con1=null;
  Class.forName("oracle.jdbc.driver.OracleDriver");
  con1 = java.sql.DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","system","oracle");
  Statement stmt1 = con1.createStatement(); 
  ResultSet rs1 = stmt1.executeQuery("SELECT DISTINCT states.State_Long,districts.District_Name,banks.bank_name,bankdetail.branch_name FROM bankdetail INNER JOIN states ON bankdetail.state_code=states.State_Code AND states.State_Code='"+state+"' INNER JOIN districts ON bankdetail.district_code=districts.District_Code AND districts.District_Code='"+district+"' INNER JOIN banks ON bankdetail.bank_code=banks.bank_code AND banks.bank_code='"+bank_code+"'");  
   while(rs1.next()){
   %>
   <tr style="text-align:center;" >
   <td><%out.print(rs1.getString(1));%></td>
    <td><%out.print(rs1.getString(2));%></td>
   <td><%out.print(rs1.getString(3));%></td>
   <td><%out.print(rs1.getString(4));%></td></tr>
    <%
    }
    }
     }
   catch(Exception e){
      System.out.println(e);
 }

%>
</table></body></html>
                   state      district      bank       branch
                  punjab      bathinda      SBI          ABC
                  punjab      bathinda      SBI          PQR
                  punjab      bathinda      SBI          XYZ
                   state      district       bank       branch
                   punjab     bathinda       SBI         ABC
                                                         PQR
                                                         XYZ
 String invalid_value = "some invalid value";
 String col1_old = invalid_value;
 .....
 while(rs1.next())
 {
    out.print("<tr style=\"text-align:center;\">");
    if(!col1_old.equals(rs1.getString(1)))
    {
          out.print("<td>"+rs1.getString(1)+"</td>");
    }
    else
    { 
           out.print("<td>&nbsp;</td>");
    }
    .....
     col1_old = rs1.getString(1);
    .....
    out.print("</tr>");
}