这段代码有问题,请帮忙改一下,谢谢。

frankrenping 2010-08-12 05:17:35
主要是AJAX部分的AJAX请求有问题?

<html>
<h1 style="font:Times New Roman, Times, serif; font-size:14px; color:#FF3366;font-weight:bold; border:1px solid;border-color:#Ff0000; width:133px; height:23px; position:absolute; float:left; left: 308px; top: 138px;text-align:center;background:ffffff;vertical-align:super;" onclick="refreshdata(2)">Match</h1>
<div id="x2">
</div>
</html>

ajax部分:

<script language="javascript" type="text/javascript">
<!--
//定义用于存储XMLHttpRequest对象的变量
var xmlHttp = null;

//创建XMLHttpRequest对象
function creatXMLHTTP()
{
//判断浏览器是否支持ActiveX控件
if(window.ActiveXObject)
{
//将所有可能出现的ActiveXObject版本都放在一个数组中
var arrXmlHttpTypes = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0',,'MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP'];
//通过循环创建XMLHttpRequest对象
for(var i=0;i<arrXmlHttpTypes.length;i++)
{
try
{
//创建XMLHttpRequest对象
xmlHttp = new ActiveXObject(arrXmlHttpTypes[i]);
//如果创建XMLHttpRequest对象成功,则跳出循环
break;
}
catch(ex)
{
}
}
}
//判断浏览器是否将XMLHttpRequest作为本地对象实现
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}

function refreshdata(m)
{
creatXMLHTTP();
var url="match.asp?";
var x = getXMLHTTPObj();

x.onreadystatechange=function event()
{
if(x.readystate==4)
{
if(x.status==200)
{
onclick(refreshdata)=url
}
}
}
x.open('GET',url,true);
x.setRequestHeader("Content-Type","text/XML");
x.send(null);
}
function onclick()
{
creatXMLHTTP();
var url="match.asp?"
XMLHTTP.open('GET',url,true);
XML.onreadystatechange=refreshdata(m);
XML.send(null);
}

</SCRIPT>
...全文
78 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
frankrenping 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 showbo 的回复:]
你的目的应该是点击标题,然后显示对应的内容吧?

那这样不需要再次循环调用了,当再次点击的时候再更新就行了
[/Quote]

我的基础太差,那段代码是拼凑的,您说的没错,我先试下您上面的代码哈。
Go 旅城通票 2010-08-13
  • 打赏
  • 举报
回复
你的目的应该是点击标题,然后显示对应的内容吧?

那这样不需要再次循环调用了,当再次点击的时候再更新就行了
Go 旅城通票 2010-08-13
  • 打赏
  • 举报
回复
  你要实现什么功能呢?就是点击标题,然后自动读取标题对应的内容显示在x2这个div里面??是的话可以自己参考下下面的代码,你的代码写的有点乱

<script type="text/javascript">
function getXHR(){
var xhr=false;
if(window.ActiveXObject)xhr=new ActiveXObject("microsoft.xmlhttp"):
else if(window.XMLHttpRequest)xhr=new XMLHttpRequest();
return xhr;
}
function refreshdata(id,objid){//id:文章的ID objid:返回内容的显示在指定容器的ID
var xhr=getXHR();
if(!xhr){alert('您的浏览器不支持ajax!');return false;}
var url='match.asp?id='+id+'&_dc='+new Date().getTime();//附带参数和时间戳
xhr.open('get',url,true);
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
if(xhr.status==200){
var dv=document.getElementById(objid);
dv.innerHTML=xhr.responseText;//成功返回设置容器的内容为ajax的返回值
dv.style.display='block';//显示容器,因为默认是隐藏的
}
else alert('发生严重错误'+xhr.status);//发生错误
}
}
xhr.send(null);
}
</script>
<style type="text/css">
.hide{display:none}
</style>
<!--注意修改refreshdata的参数,传入文章对应的ID,这样传递到服务器读取对应的内容,同时多添加一个参数,指示返回的内容显示在那个容器上-->
<h1 style="font:Times New Roman, Times, serif; font-size:14px; color:#FF3366;font-weight:bold; border:1px solid;border-color:#Ff0000; width:133px; height:23px; position:absolute; float:left; left: 308px; top: 138px;text-align:center;background:ffffff;vertical-align:super;" onclick="refreshdata(1,'x1')">Match1</h1>
<div id="x1" class="hide"><!--你是否有多个标题,然后需要读取多个内容,如果是你可以写一个通用的样式,然后设置class属性就行了-->


<h1 style="font:Times New Roman, Times, serif; font-size:14px; color:#FF3366;font-weight:bold; border:1px solid;border-color:#Ff0000; width:133px; height:23px; position:absolute; float:left; left: 308px; top: 138px;text-align:center;background:ffffff;vertical-align:super;" onclick="refreshdata(2,'x2')">Match2</h1>
<div id="x2" class="hide">
</div>



match.asp
id=request.querystring("id")
data=""'存储数据库中对应记录的内容
'====根据id读数据库,经内容存入变量data中的代码,自己写
response.write data'=======输出内容提供给ajax使用
frankrenping 2010-08-13
  • 打赏
  • 举报
回复
现在是已更新如下了:(还有问题)

<script language="javascript" type="text/javascript">
<!--
//定义用于存储XMLHttpRequest对象的变量
var xmlHttp = null;

//创建XMLHttpRequest对象
function creatXMLHTTP()
{
//判断浏览器是否支持ActiveX控件
if(window.ActiveXObject)
{
//将所有可能出现的ActiveXObject版本都放在一个数组中
var arrXmlHttpTypes = ['Microsoft.XMLHTTP','MSXML2.XMLHTTP.6.0',,'MSXML2.XMLHTTP.5.0','MSXML2.XMLHTTP.4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP'];
//通过循环创建XMLHttpRequest对象
for(var i=0;i<arrXmlHttpTypes.length;i++)
{
try
{
//创建XMLHttpRequest对象
xmlHttp = new ActiveXObject(arrXmlHttpTypes[i]);
//如果创建XMLHttpRequest对象成功,则跳出循环
break;
}
catch(ex)
{
}
}
}
//判断浏览器是否将XMLHttpRequest作为本地对象实现
else if(window.XMLHttpRequest)
{
xmlHttp = new XMLHttpRequest();
}
}



function refreshdata(m)
{
creatXMLHTTP();
var url="match.asp?_dc="+new Date().getTime(); //加时间戳防止get提交时IE下的缓存问题
var x = getXMLHTTPObj();//这个方法没有定义吧?

x.onreadystatechange=function event()
{
if(x.readystate==4)
{
if(x.status==200)
{
refreshdata();//=======成功后再次调用,建议还是setTimeout调用,要不连续的发起请求,人多访问怕你服务器要当掉
}
}
}
x.open('GET',url,true);
x.setRequestHeader("Content-Type","text/XML");
x.send(null);
}

</SCRIPT>
frankrenping 2010-08-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ruisheng_412 的回复:]
XML.onreadystatechange=refreshdata(m);
有错误
[/Quote]

如何来改麽?
ruisheng_412 2010-08-13
  • 打赏
  • 举报
回复
XML.onreadystatechange=refreshdata(m);
有错误
frankrenping 2010-08-13
  • 打赏
  • 举报
回复
楼上的办法试了不行,没有实现局部刷新,点击标题 MATCH 没有反应,另外问问我在CSS中要设置层:#X2{display:none;}吗?还是在那里设置。我现在所有的层都在一个网页:MATCH.ASP 中。
frankrenping 2010-08-13
  • 打赏
  • 举报
回复
回复6楼,我现在先不用从数据库中取DATA,只是想实现局部刷新,刷新后的页面暂不牵扯到数据库,就是实现不了这个功能,能否再改下AJAX,谢谢。
Go 旅城通票 2010-08-12
  • 打赏
  • 举报
回复
function onclick()
{
creatXMLHTTP();
var url="match.asp?"
XMLHTTP.open('GET',url,true);
XML.onreadystatechange=refreshdata(m);
XML.send(null);
}


这个代码有点重复了吧,直接在状态装换函数中调用refreshdata就行了。


var x = getXMLHTTPObj();//这个方法没有定义吧?



function refreshdata(m)
{
creatXMLHTTP();
var url="match.asp?_dc="+new Date().getTime(); //加时间戳防止get提交时IE下的缓存问题
var x = xmlHttp//getXMLHTTPObj();//=============

x.onreadystatechange=function event()
{
if(x.readystate==4)
{
if(x.status==200)
{
refreshdata();//=======成功后再次调用,建议还是setTimeout调用,要不连续的发起请求,人多访问怕你服务器要当掉
}
}
}
x.open('GET',url,true);
x.setRequestHeader("Content-Type","text/XML");
x.send(null);
}
    本课程分享对由中国开发者提供的OpenCV条形码识别模块的原理和代码精讲。该模块借鉴“目标识别”领域先进理念,采用“定位-识别”二段模式,有效提高了自然环境下条码识别的准确率并保持了C++代码的高速度,相比较常用的zxing和zbar在准确率和识别速度上均有较大优势。更难得可贵的是在代码的实现过程中能够注意细节,在诸如“循环测试确定参数数值”“积分图的使用”“倾斜矩形纠偏”等处,均提供了思路清晰、弹性高的优质代码。作为一套通过了OpenCV官方的代码检验、解决一个常用领域内具体问题的模块,对于图像处理学习来说是难得可贵的。    逐条进行代码解读繁琐且低效,个人认为,在图像处理领域,能够运行和修观察的代码对于学习研究至关重要。在理论剖析部分,也是由应用引导原理。同时做好知识的迁移和代码的复用工作。在这个过程中,创建针对性的实验非常重要。 课程内容分为4个部分:一是基本配置,包括· 条形码识别模块的安装使用 (cmake配置和OpenCV编译);· 构建用于测试和代码阅读的环境;· 模块对官方数据集的测试;二是条码定位,将详细讲解思路、原理和实现知识迁移部分将简单说一下在毛发识别上的迁移:三是条码识别,该部分内容会首先梳理框架,而后具体进行分析讲解    此外,我们将结合例子,将OpenCV的基础功能,包括积分图像、形态学变化、联通区域、透视变化等进行复习,加深理解。 

52,797

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧