网页中实时显示数据库数据的问题?(应用了xmlhttp)
我应用xmlhttp写了一个实时显示数据的程序,由于初次使用,查了很多资料仍然不得要领,下面是我的代码,请大家看看,该怎么改,(数据库应用了hibernate)
dataread.jsp文件代码:
<%@page contentType= "text/html;charset=GB2312 "%>
<%@page language= "java "%>
<%@page import= "java.util.* "%>
<%@page import= "java.sql.* "%>
<%@page import= "org.hibernate.Session "%>
<%@page import= "org.hibernate.SessionFactory "%>
<%@page import= "org.hibernate.cfg.Configuration "%>
<%@page import= "org.hibernate.Query "%>
<%@page import= "com.tianhe.dao.hbm.DCqttestdata "%>
<%@page import= "com.tianhe.dao.hbm.DCqttestdataId "%>
<%@page import= "com.tianhe.dao.hbm.DCqttestdataHome "%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html>
<head>
<title>
</title>
</head>
<body bgcolor= "#ffffff ">
<script type= "text/javascript ">
<%
Configuration conf=new Configuration().configure();
SessionFactory sessionFactory = conf.buildSessionFactory();
Session s = sessionFactory.openSession();
DCqttestdata dcd =new DCqttestdata();
Query qr=s.createQuery( "from DCqttestdata as dcqt order by dcqt.id.revTime desc ");
String sResult;
if (qr.list().size()> 0)
{
dcd=(DCqttestdata)qr.list().get(0);
}
sResult=dcd.getBsic() + "@@ " + dcd.getCellid() + "@@ " + dcd.getCh();
out.print(sResult);
//System.out.println(sResult);
%>
</script>
</body>
</html>
datadisplay.jsp代码
<%@page contentType= "text/html;charset=GB2312 "%>
<%@page language= "java "%>
<%@page import= "java.util.* "%>
<%@page import= "java.sql.* "%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN " "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd ">
<html>
<head>
<title>
datadisplay
</title>
<script type= "text/javascript ">
function GetResult()
{
try
{
//var oBao = new ActiveXObject( "Msxml2.XMLHTTP ");
var oBao = new ActiveXObject( "Microsoft.XMLHTTP ");
oBao.open( "GET ", "dataread.jsp ",false);
oBao.send();
var strResult = oBao.responseText;
}
catch(e)
{
window.confirm(e);
}
var arrTmp = strResult.split( "@@ ");
Bsic = arrTmp[0];
Cellid = arrTmp[1];
Ch = arrTmp[2];
var getTable= document.getElementById( "tb ");
var row1 = getTable.insertRow();
var cell1 = row1.insertCell();
cell1.innerText = Bsic;
var cell2 = row1.insertCell();
cell2.innerText = Cellid;
var cell3 = row1.insertCell();
cell3.innerText = Ch;
};
function RemoveRow()
{
//保留第一行表头,其余数据均删除.
var iRows = tb.rows.length;
for(var i=0;i <iRows-1;i++)
{
tb.deleteRow(1);
}
};
function MyShow()
{
//2秒自动刷新一次,2秒取得一次数据.
timer = window.setInterval(GetResult(),2000);
};
</script>
</head>
<body onload= "MyShow() ">
<p> </p>
<table width= "47% " border= "1 " cellpadding= "1 " cellspacing= "0 " id= "tb ">
<tr>
<td> Bsic </td>
<td> Cellid </td>
<td> Ch </td>
</tr>
</table>
</body>
</html>
运行后,只显示表的表头,数据却检索不出来,大家帮忙看看该怎么写,先谢了!
[解决办法]
<html>
<body>
<script type= "text/javascript ">
function showCustomer(str)
{
if (str.length==0)
{
document.getElementById( "txtHint ").innerHTML= " ";
return;
}
var xmlHttp=null;
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject( "Msxml2.XMLHTTP ");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new ActiveXObject( "Microsoft.XMLHTTP ");
}
if (xmlHttp==null)
{
alert ( "Your browser does not support AJAX! ");
return;
}
var url= "getcustomer.asp ";
url=url+ "?q= "+str;
url=url+ "&sid= "+Math.random();
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState==4)
{
document.getElementById( "txtHint ").innerHTML=xmlHttp.responseText;
}
};
xmlHttp.open( "GET ",url,true);
xmlHttp.send(null);
}
</script>
<form>
Select a Customer:
<select name= "customers " onchange= "showCustomer(this.value) ">
<option value= "ALFKI "> Alfreds Futterkiste
<option value= "NORTS "> North/South
<option value= "WOLZA "> Wolski Zajazd
</select>
</form> <p>
<div id= "txtHint "> <b> Customer info will be listed here. </b> </div>
</p>
</html>
----------------------------------
<%
response.expires=-1
dim customer_id
customer_id=trim(request.querystring( "q "))
sql= "SELECT * FROM CUSTOMERS WHERE CUSTOMERID= ' "+customer_id+ " ' "
'sql=sql & request.querystring( "q ")
'response.write sql
'response.end
Set Conn=Server.CreateObject( "ADODB.CONNECTION ")
ConnStr= "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Northwind;Data Source=COMMONOR-C687BB "
Conn.Open ConnStr
Set rs=Server.CreateObject( "ADODB.RECORDSET ")
rs.Open sql, conn
'if(rs.count> )
'{
'response.write "aa "
'response.end
'}
response.write( " <table> ")
do until rs.EOF
for each x in rs.Fields
response.write( " <tr> <td> <b> " & x.name & " </b> </td> ")
'x.name是字段名
response.write( " <td> " & x.value & " </td> </tr> ")
'x.value是值
next
rs.MoveNext
loop
response.write( " </table> ")
%>
<%
rs.close
set rs=nothing
conn.close
set conn=nothing
%>
----------------------
一共2个页面 一个是AJAXEXAMPLE.HTML 一个是getcustomer.asp
意思跟LZ的意思是一样的动态局部刷新 ,经测试可以运行
数据库是MS_SQL自己带的表````自己看一下吧