日期:2014-05-16  浏览次数:20721 次

求AJAX更新页面局部数据
下图是网站显示截图,下载次数固定,比如说5次,点击下载后要求能够判断当前的下载次数是否大于允许的下载次数,代码如下

<%
set rs1=server.CreateObject("adodb.recordset")
sql1="select * from downcount where 项目编号="&request.querystring("id") & " and 用户编号="&session("id") & " and 下载项目编号="& rs("编号")
rs1.open sql1,conn,1,1
if rs1.eof then
  xzcs1=0
else
  xzcs1=rs1("累计下载次数")
end if
%>

现在的问题是:点击下载后,xzcs1变量不能实时更新,用户不能控制下载次数,需要手动刷新或重新登录后才能控制下载次数,我的问题是用AJAX或其他什么方式实现实时刷新变量,达到控制下载次数的目的


以下代码实现更新累计下载次数

<script language=javascript>
var cs;
function downloadcount(id,yhid,xmid)
{
if (window.ActiveXObject)
  {
    cs=new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest)
  {
    cs=new XMLHttpRequest();
  }
var my_url="t.asp?id="+id+"&yhid="+yhid+"&xmid="+xmid;
cs.open ("GET",my_url,false);
cs.send(null);
</script>

------解决方案--------------------
你要更新数据库或者使用application保存为全局变量。。你那个是过程变量,执行asp页面完毕就释放了

set rs1=server.CreateObject("adodb.recordset")
sql1="select * from downcount where 项目编号="&request.querystring("id") & " and 用户编号="&session("id") & " and 下载项目编号="& rs("编号")
rs1.open sql1,conn,1,1
if rs1.eof then
  xzcs1=0
else
  xzcs1=rs1("累计下载次数")
end if
'=======执行更新
conn.execute("update 累计下载次数="&xzcs1&"  downcount where 项目编号="&request.querystring("id") & " and 用户编号="&session("id") & " and 下载项目编号="& rs("编号"))



------解决方案--------------------
t.asp

'response.write sql
 response.write count1'输出下载次数给ajax使用


var cs;
function downloadcount(id,yhid,xmid)
{
if (window.ActiveXObject)
  {
    cs=new ActiveXObject("Microsoft.XMLHTTP");
  }
  else if (window.XMLHttpRequest)
  {
    cs=new XMLHttpRequest();
  }
var my_url="t.asp?id="+id+"&yhid="+yhid+"&xmid="+xmid+'&_dc='+new Date().getTime();//加时间戳防止IE缓存
cs.open ("GET",my_url,false);
cs.send(null);
alert(cs.responseText)//得到最新的下载统计