大家帮我看看这个AJAX怎么用啊,摸了半天不知道怎么用

jim8590251 jim8590251 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

function Ajax(sUrl,sRecvType,sQueryString,oResultFunc,sError,sState,sDownloadEnd)
{
//访问服务器地址
this.sUrl = sUrl;
//this.object = null;
//this.sMethod = null;
//返回数据类型,0为xml,1为text
this.sRecvType = sRecvType;
// 错误字符串
this.ErrorStr = null;
// 错误事件驱动,当发生错误时触发
this.OnError = null;
// 状态事件驱动,当状态改变时触发
//this.EventState = EventState;

this.sRecvType = sRecvType;

this.QueryString = sQueryString;

this.oResultFunc = oResultFunc;
//页面上显示错误的html标记id,标记不填或留空则采用默认标记,下同
this.sError = sError;
//页面上显示状态的html标记id
this.sState = sState;
//页面上显示完成回调的html标记id
this.sDownloadEnd = sDownloadEnd;
//建立xmlhttp对象
this.XmlHttp = this.createXMLHttpRequest();

XmlHttp = this.XmlHttp;


if (this.XmlHttp == null) {
alert('XMLHTTPREQUEST对象创建不成功!');
} else if (typeof this.XmlHttp == "object") {
//alert('XMLHTTPREQUEST对象创建成功!');
}

Obj = this;
//定义xmlhttp对象的状态句柄
this.XmlHttp.onreadystatechange = this.handler;

};

/*
创建XMLHttp对象
*/
Ajax.prototype.createXMLHttpRequest = function() {
if (window.XMLHttpRequest){
return new XMLHttpRequest();
} else {
var MSXML = ["MSXML2.XMLHTTP.6.0", "MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for(var n = 0; n < MSXML.length; n ++) {
try {
return new ActiveXObject(MSXML[n]); return;
} catch(e) {
this.ErrorStr = "XMLHttpRequest对象创建不成功!.";
}
}
}
this.ErrorStr = "你的浏览器不支持XMLHttpRequest对象.";
if (typeof this.EventError == "function") {
this.EventError(this.ErrorStr);
}
return null;
};

/*
发送服务器请求
*/
Ajax.prototype.send = function() {
sUrl = this.sUrl;
sMethod = this.sMethod;
var sUrl = sUrl + "?timeStamp=" + new Date().getTime();//采取当前时间取不同url,防止页面缓存

var queryString = this.QueryString;
if (sMethod.toLocaleUpperCase() == 'POST') {
//POST方式
this.XmlHttp.open("POST",sUrl,true);
this.XmlHttp.setRequestHeader("content-length",queryString.length);
//this.XmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded","charset=UTF-8");
this.XmlHttp.send(queryString);
} else if (sMethod.toLocaleUpperCase() == 'GET') {
//GET方式
queryString = sUrl + "&" + this.QueryString;
this.XmlHttp.open("GET",queryString,true);
this.XmlHttp.send(null);
}
};

/*
sRecvType 接受数据类型:0为xml 1为text
responseBody 将回应信息正文以unsigned byte数组形式返回的未经解码的二进制数据.只读
responseText 将响应信息作为字符串返回.只读
*/

Ajax.prototype.handler = function () {

if(Obj.EventState)
{
Obj.EventState(XmlHttp.readyState);

}
if (XmlHttp.readyState == 4)
{
if (XmlHttp.status == 200)
{
if(Obj.oResultFunc)
{
this.RetData = Obj.UTFTOGB(XmlHttp.responseBody);
//alert(this.RetData);//返回ajax请求的内容
//此处可以添加详细的处理函数,使用ajax返回结果,做相应操作
//Obj.oResultFunc(this.RetData);
}

/*
sRecvType 接受数据类型:1为text 0为xml
*/

Result = (Obj.sRecvType) ? XmlHttp.responseText : Result = XmlHttp.responseXML;
Obj.EventDownloadEnd(Result);
Obj.status = XmlHttp.status;
}
else
{

Obj.ErrorStr = "您所请求的页面有异常。";
if (typeof Obj.EventError == "function") {
Obj.EventError(Obj.ErrorStr);
}
}
}
};


// UTF 转入 GB (by:Rimifon)
Ajax.prototype.UTFTOGB = function(strBody) {
var Rec=new ActiveXObject("ADODB.RecordSet");
Rec.Fields.Append("DDD",201,1);
Rec.Open();
Rec.AddNew();
Rec(0).AppendChunk(strBody);
Rec.Update();
var HTML=Rec(0).Value;
Rec.Close();
delete Rec;
return(HTML);
};


// 错误回调事件函数
Ajax.prototype.EventError = function(strValue){
if(this.sError != null && this.sError != "" && document.getElementById(this.sError) != "undefined"){
document.getElementById(this.sError).innerHTML = strValue;
}
};

// 状态回调事件函数
Ajax.prototype.EventState = function(strValue) {
var strState = new Array();
strState[0] = "未初始化...";
strState[1] = "开始读取数据...";
strState[2] = "读取数据...";
strState[3] = "读取数据中...";
strState[4] = "";//"读取完成...";
statusText = (strValue < 4 || strValue != 0) ? strState[strValue] : strState[0];
if(this.sState != null && this.sState != "" && document.getElementById(this.sState) != "undefined"){
document.getElementById(this.sState).innerHTML = "<img src='images/loading.gif'> <font color=red>" + statusText + "</font> ";
}
};

// 完成回调事件函数
Ajax.prototype.EventDownloadEnd = function (strValue)
{
if(this.sDownloadEnd != null && this.sDownloadEnd != "" && document.getElementById(this.sDownloadEnd) != "undefined")
{
document.getElementById(this.sDownloadEnd).innerHTML = strValue;
}
};



以上这个怎么用呢
var proname = $("stu_pro").value;
var aj = new Ajax("adminajax.php",1,"menu=setcity&proid="+proname,'',"myajax","myajax","myajax");
aj.sMethod = "get";
aj.send();

这样用,只能把adminajax.php?menu=setcity&proid=..这个地址得到的值传到了页面上的一个ID为myajax的 DIV里面
可是我想得到这个值,没办法得到它
我再用
var mytext = $("myajax").value;
alert(mytext);
得到的缺是开始加载的"<img src='images/loading.gif'> <font color=red>" + statusText + "</font> ";

我如果把
var aj = new Ajax("adminajax.php",1,"menu=setcity&proid="+proname,'',"myajax","myajax","myajax");
改成了
var aj = new Ajax("adminajax.php",1,"menu=setcity&proid="+proname,getvalue(),"myajax","myajax","myajax");
再在getvalue()函数里来取myajax.innerHTML
发现他是先执行getvalue();再加载AJAX,而不是AJAX执行好了,再取innerHTML,高手帮我看看吧


...全文

相关推荐

解决vue中post方式提交数据后台无法接收的问题

最近用vue做项目,遇到ajax提交值的问题。 用post方式提交,后台无法接收到值。百度了半天,各种解决方式都有,下载中间件之类的,都试了。 最后咨询大牛才知道是数据没有序列化的问题。 下面是源码: 因为我没有使用箭头函数,所以需要在外面重新定义this,这样不太好,因为有时忘了的话就很尴尬了。 不过不知道为什么,我之前用 JSON.stringify( ) 完全没有效果。 改成 : var qs = require('querystring') qs.stringify(data) 就ok了。 以上这篇(标题)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软

weixin_38607479

url地址自动加#号问题说明

web开发中,有时候给超链接写点击事件时候喜欢这样写:   <a>操作</a>   有次用jquery提交ajax请求后,当前页的url参数末尾就会自动给加个#号。开始百思不得其解,纠结了半天原来是这种写法的问题,换成 href=”[removed]void(0);” 后问题不在出现。   注: # 包含了一个位置信息,默认的锚点是#top 也就是网页的上端,而[removed]void(0) 仅表示一个死链接。

weixin_38722184

jsf+spring2.5+jpa(hibernate)的jar包

这是jsf+spring2.5+jpa(hibernate)的jar包,很多人为了jsj环境而配置半天,在此提供jar包共享。注:除了ajax4jsf和tomahawk-1.1.3.jar,因为csdn只让我上传20mb,大家自己可以下一下自己试试。

素还真7784877

2013 DSOFramer 最新修改控件

最近要做B/S的电子病历,网上找了很多编辑器,不是收费,就是很烂,听朋友说DSOFramer这个控件不错,也支持网页的版本,下了半天,找了各种版本,发现控件有改好的,加了Word的鼠标双击事件,但源代码都是老版本的,没有修改后,于是乎。。自己下了网传的2.3的代码,动手修改了一下,增加了如下内容,有需要的朋友可以下来用用,代码我就不传了,还是VC6的,想升级到.net 2010但问题太多,就没升,但功能算是支持了: 1、增加了WindowSelectionChange事件,用于读取Word当前光标选择的位置和内容。 2、增加了WindowBeforeDoubleClick事件,用于双击Word时弹出一个小窗口,方便医生结构化录入。 3、增加了一个http上传时的callback方法,用于ajax提交(以前的post方法有问题) 4、增加了word事件连接点,用于接收word事件。 新增的事件全名 HRESULT Word_WindowSelectionChange([in] IDispatch* Sel); HRESULT Word_WindowBeforeDoubleClick([in] IDispatch* Sel,[in] boolean* Cancel,[in] long xx,[in] long yy); (sel 是word的选择对象,通过sel什么都能取到,cancel没用,后面两个是坐标,方便你定位) 具体用法大家应该都会,在脚本里直接引入控件,绑定事件,然后js直接写事件就行

求球

domino bootstrap

1)这是基于之前做的jquery教程的延续 2)这里包括经典的form和xpages引用bootstrap 3.03简单教程(xpages可调试了半天,才能正常显示) 3)里面包括了简单更改了公司网站,之前说企业网站不能手机看的功能,使用了bootstrap就可以了 这个网站只是简单的静态的教程,如果想做复杂动态的可以更改成ajax调用更改前台(计算文本公式调用,当然还有其它) 3)交流 873968102

weijia3624
评论 14
收藏 已收藏
分享
返回顶部
jim8590251
基础编程 21,889 成员 140,329 内容