自动更新数据库中的表而不刷新页面

时间:2013-05-27 06:17:56

标签: php html ajax

我是php和ajax的新手..

我面临的问题是 -

我在jsp页面中显示一个表..我想在没有

的情况下自动更新表

每10秒刷新一次页面。

我正在从php页面检索数据库的值..

这是data.jsp的代码

   <html>
    <script type="text/javascript">

     function Ajax() 
    {
      var
            $http,
            $self = arguments.callee;

        if (window.XMLHttpRequest) {
            $http = new XMLHttpRequest();
        } else if (window.ActiveXObject) {
            try {
                $http = new ActiveXObject('Msxml2.XMLHTTP');
            } catch(e) {
                $http = new ActiveXObject('Microsoft.XMLHTTP');
            }
        }

        if ($http) {
            $http.onreadystatechange = function()
            {
                if (/4|^complete$/.test($http.readyState)) {
                    document.getElementById('ReloadThis').innerHTML =             $http.responseText;
                    setTimeout(function(){$self();}, 10000);
                }
            };
            $http.open('GET', 'getuser.jsp', true);
            $http.send(null);
         }
    }
   function myFunction()
            {
        setTimeout(function() {ajax();}, 10000);
            }
    </script>
        </head>

       <body>

        <button onclick="myFunction()">Try it</button>
           <div   id="ReloadThis" > the table is to be shown here </div>
            </body>
          </html>

我在php中执行getuser部分。但由于tomcat不支持php ..所以我将我的代码转换为jsp ..这里是我的代码

和getuser.jsp的代码

          <%@page import="java.sql.ResultSet"%>
         <%@page import="java.sql.PreparedStatement"%>
       <%@page import="java.sql.DriverManager"%>
             <%@page import="java.sql.Connection"%>

           <%

                    String cond="SELECT * FROM invertor ";
                    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
                    Connection con = DriverManager.getConnection("jdbc:odbc:xe");
                    PreparedStatement ps = con.prepareStatement(cond);

                    ResultSet rs = ps.executeQuery();

                    if (rs.next()) 
                     {
                     dc_volt = rs.getString(1).trim();
                     dc_amp = rs.getString(2).trim();
                     ac_volt = rs.getString(3).trim();

                     ac_amp = rs.getString(4).trim();

                     }
                    else
                    {

                    }

                 %>

我得到的错误是java.lang.arrayindexoutofboundsexception:2

从我的data.jsp页面触发&#34;尝试&#34;:按钮后,没有显示数据库表...

1 个答案:

答案 0 :(得分:0)

您的代码应该是这样的 -

<script>
if ($http) {

     /*make the call*/
     $http.open('GET', 'getuser.php', true);               

     /* check for state change */
     $http.onreadystatechange = function()
            {
                if (/4|^complete$/.test($http.readyState)) {
                    document.getElementById('ReloadThis').innerHTML =             $http.responseText;
                    setTimeout(function(){$self();}, 10000);
                }
            };

     /*Because this is a GET request, the send values can be null*/       
     $http.send(null);
}
</script>