2014-11-20 2 views
0

jquery없이 ajax 호출을 수행 한 후 동일한 페이지를 다시로드하고 싶습니다. 가능합니까? 내 코드에서 dbname을 삭제 한 후에 테이블에서 데이터베이스 이름을 삭제하려고합니다. 페이지에 dbnames가 표시되지 않습니다. 가능한가요? window.location = "Databases.jsp"로 시도했습니다.하지만 그렇지 않았습니다. work.What이 작업을 수행 할 수 있습니까? 또한 framset.So 때 내가 데이터베이스 이름을 포함하는 테이블을 표시하고 있습니다. 내가 chage/delete 데이터베이스 이름도 왼쪽 프레임 셋을 새로 고치고 싶습니다. 전체 페이지) 내 코드 :ajax 호출 후 전체 페이지 새로 고침

Database.jsp

<%-- 
    Document : Databases 
    Created on : Nov 10, 2014, 3:08:01 PM 
    Author  : user 
--%> 

<%@page import="java.sql.PreparedStatement"%> 
<%@page import="java.sql.DatabaseMetaData"%> 
<%@page import="java.sql.ResultSet"%> 
<%@page import="querywork.DBConnection"%> 
<%@page import="java.sql.Statement"%> 
<%@page import="java.sql.DriverManager"%> 
<%@page import="java.sql.Connection"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 

     <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     <title>Untitled Document</title> 
     <script language="javascript" type="text/javascript"> 
    var request; 

     function drop() 
     { 

      var cboxes = document.getElementsByName('ch'); 
      var len = cboxes.length; 
      var dbnam = document.getElementById("hid") .value 
      var dbs=""; 
      var dbname=dbnam.split(",") 
      for (var i=0; i<len; i++) { 
       if(cboxes[i].checked) 
       { 
        dbs= dbname[i] 

        var url="Delete.jsp?val="+dbs; 

        if(window.XMLHttpRequest){ 
         request=new XMLHttpRequest(); 
        } 
        else if(window.ActiveXObject){ 
         request=new ActiveXObject("Microsoft.XMLHTTP"); 
        } 

        try 
        { 
         request.onreadystatechange=getInfo; 
         request.open("GET",url,true); 
         request.send(); 
        } 
        catch(e) 
        { 
         alert("Unable to connect to server"); 
        } 
       } 
      } 
     } 

     function getInfo(){ 
      if(request.readyState==4){ 
       var val=request.responseText; 
       document.getElementById('amit').innerHTML=val; 

      } 
     }    

    </script> 
</head> 


<body> 
    <form id="form1" name="form1" method="post" action=""> 

     <h2>Databases</h2> 
     <label> 
      <input type="text" name="textfield" value="Database Name" id="dbname" /> 
     </label> 
     <label> 
      <input type="submit" name="Submit" value="CREATE" onClick="create(textfield.value)"/> 

     </label> 
     <p>&nbsp;</p> 



     <% 
      try { 
       Class.forName("com.mysql.jdbc.Driver").newInstance(); 
       Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", ""); 

       DatabaseMetaData dbmd = conn.getMetaData(); 

       ResultSet ctlgs = dbmd.getCatalogs(); 

     %> 


     <table border="1" cellpadding ="2"cellspacing="3"> 
      <tr> 
       <td> 

       </td> 
       <td> 
        Database Name 
       </td> 

      </tr> 
      <% 
       String dbnme = ""; 
       int i = 0; 

       while (ctlgs.next()) { 
        dbnme = dbnme + ctlgs.getString(1) + ","; 
        String name = "ch" + i; 
      %> 

      <tr> 
       <td> 
        <input name="ch" type="checkbox" value="" id="<%=name%>"/> 
       </td> 
       <td> 
        <%=ctlgs.getString(1)%> 
       </td> 
      </tr> 
      <% 
        i++; 
       }%> 
     </table> 
     <input type="hidden" name="hid" id="hid1" value="<%=i%>"/> 
     <input type="hidden" name="hid" id="hid" value="<%=dbnme%>"/> 
     <% 
      } catch (Exception e) { 
       out.println(e); 
      }%> 
     <font color="blue"><u><label id="lid" onclick="drop()"> Drop</label></u></font> 
     <br></br> 
     <div id="amit"></div> 
    </form> 


</body> 

Delete.jsp

012 3,516,
<%-- 
    Document : Delete 
    Created on : Nov 11, 2014, 9:43:22 PM 
    Author  : user 
--%> 

<%@page import="java.sql.PreparedStatement"%> 
<%@page import="java.sql.DriverManager"%> 
<%@page import="java.sql.Connection"%> 
<%@page import="querywork.DBConnection"%> 
<%@page contentType="text/html" pageEncoding="UTF-8"%> 
<!DOCTYPE html> 
<% 
    String responseText = ""; 
    String message = ""; 
    String dbname = request.getParameter("val"); 
    boolean flg = false; 
    Class.forName("com.mysql.jdbc.Driver").newInstance(); 
    Connection conn = DriverManager.getConnection("jdbc:mysql://localhost/", "root", ""); 
    PreparedStatement ps = conn.prepareStatement("DROP DATABASE " + dbname); 
    int k = ps.executeUpdate(); 
    if (k > 0) { 
     flg = true; 
    } else { 
     flg = false; 
    } 

    if (flg) { 
     message = "success"; 
    } else { 
     message = "failed"; 
    } 
    // } 
    responseText = "Deleted"; 
    out.println(responseText); 
    //response.sendRedirect("index.html"); 

%> 

<input type="hidden" id="hid" value="<%=message%>"/> 
<script> 
    var msg=document.getElementById("hid"). value 
    alert(msg)  
    window.location='Databases.jsp'; 

</script> 
+0

가능한 중복의 시도 [어떻게 자바 스크립트를 사용하여 페이지를 새로 고치려면? ] (http://stackoverflow.com/questions/5294842/how-to-refresh-a-page-using-javascript) – Lix

답변

2

이이

location.reload(); 

또는

window.location.reload() 

여전히 작동하지 않을 경우, 여기의 또 다른 하나

window.location.href=window.location.href 
+0

그게 아냐? 왼쪽 프레임 셋을 다시로드 할 수 있습니까? (왼쪽 및 오른쪽 프레임 셋을 다시로드하고 싶습니다) – Ash

+0

그 코드를 시도했지만 작동하지 않았습니다. 데이터베이스가 삭제되었습니다. 그러나 페이지를 새로 고치려고 명시 적으로 시도 할 때까지 페이지가 새로 고쳐지지 않습니다. – Ash

+1

예 할 수 있습니다. http://stackoverflow.com/questions/11690253/meta-refresh-redirect-to-top-frame http://stackoverflow.com/questions/15166507/meta-refresh-with-a- 프레임 타겟 – noobHere

관련 문제