2012-05-29 113 views
1

我是新來的ajax。 我正在使用ajax和jsp從數據庫中檢索數據。 當新數據插入數據庫時​​,新數據將自動顯示在Jsp頁面中。因此在ajax代碼中,我設置了Timeout()。 在jsp頁面中針對每個數據行都有一個複選框。如果我選中複選框,當頁面重新加載時,複選框會被更改。但我想,當重新加載頁面不變的複選框...如何保持「記住」複選框選擇使用ajax頁面重新加載

<html> 
<body onload="Ajax()"> 

<script type="text/javascript"> 


function Ajax() 
{ 
    var xmlHttp; 

     try 
     { 
      xmlHttp=new XMLHttpRequest();// Firefox, Opera 8.0+, Safari 
     } 
     catch (e) 
     { 
      try 
       { 
       xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); //  Internet Explorer 
       } 
     catch (e) 
     { 
      try 
       { 
       xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); 
       } 
     catch (e) 
     { 
      alert("No AJAX!?"); 
      return false; 
     } 
    } 
} 

    xmlHttp.onreadystatechange=function() 
    { 
     if(xmlHttp.readyState==4 && xmlHttp.status==200) 
     { 
        document.getElementById('ReloadThis').innerHTML=xmlHttp.responseText; 
      setTimeout('Ajax()',10000); 
     } 
    } 

    xmlHttp.open("GET","ajaxCalled.jsp",true); 
    xmlHttp.send(null); 

} 

默認文本

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" import="dbbean.DBBean,java.sql.*" pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
<script type="text/javascript"> 
function checkboxCheck() 
{ 
var checkbox1=document.getElementsById("checkbox0") 

if(checkbox1.checked) 
    { 
    alert(checkbox1); 
    checkbox1.checked="true"; 


    } 
else 
    { 
    alert(checkbox1); 
    } 
} 
</script> 
</head> 
<body onLoad="checkboxCheck()"> 



     <table border=1 cellspacing=0 cellpadding=10> 
      <tr> 
       <th>checkbox</th> 

<% 
    DBBean db=new DBBean(); 
    Connection con=null; 
    ResultSet rs=null; 
    int count=0; 
    String checkName="checkbox"; 
    String checkbox1=""; 
    try 
    { 
     con=db.getDBConnection(); 
     rs=db.execSQL("select * from login_history"); 
%>     


       <th>user_id</th> 
       <th>ip_address</th> 
       <th>login_status</th> 
      </tr> 

    <% 
     while(rs.next()) 
     { 
      checkbox1=checkName+count; 
      count++; 
      out.println(checkbox1); 
     %> 

     <tr> 
      <td><input type="checkbox" id="<%= checkbox1 %>" ></td> 
      <td><%=rs.getString(1) %></td> 
      <td><%=rs.getString(2) %></td> 
      <td><%=rs.getString(3) %></td> 
     </tr> 

<% 
    /* out.println(rs.getString(1)); 
    out.println(rs.getString(2)); 
    out.println(rs.getString(3)); 
    out.println("</br></br>");*/  
    } 
%> 

    </table> 
<% 
    rs.close(); 
    con.close(); 
} 
catch(Exception e) 
{ 
    e.printStackTrace(); 
} 
%> 

<div id="disp" style="visibility:hidden"> 
</div> 

</body> 
</html> 
+0

我假設你正在使用servlet;然後將選擇值保存在**請求集屬性**上,並在返回頁面時重新分配它,例如'request.setAttribute(「attributeName」,attributeValue);'[在Servlet請求中設置屬性](http:// www .devx.com/tips/Tip/15433),並通過表達式語言直接在jsp或javascript操作中檢索它 – shareef

回答

0

我認爲如果是這樣,你正在使用的servlet; 然後保存在請求集屬性的選擇值並分配 其返回到你的頁面重載,例如當:

request.setAttribute("attributeName",attributeValue); 

設置屬性在Servlet請求和表達語言EL直接在JSP或檢索javascript操作

相關問題