*********以下为ajax.js,作用是初始化一些ajax的元素********
var http_request = false;
function init() {
if (window.XMLHttpRequest) {//Mozilla
http_request = new XMLHttpRequest;
if (http_request.overrideMimeType) {//设置MIME
http_request.overrideMimeType("text/xml");
}
} else {
if (window.ActiveXObject) {//IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {
}
}
}
}
if (!http_request) {//初始化XMLHttpRequest错误
window.alert("Create XMLHttpRequest Error");
return false;
}
}
function send_request(url) {
http_request = false;
init();
//指定XMLHttpRequest状态变化的处理函数
http_request.onreadystatechange = processRequest;
http_request.open("GET", url, true);
http_request.send(null);
}
***********把上面的存成js文件,并在你需要使用ajax的页面引用
下面是showMen方法,他只有一句话
function showMen(cname){
send_request("/getMen.jsp?cname=" + cname);
}
下面是处理的getMen.jsp
首先要取根据参数取出这个商品的记录,数据库操作你自己写吧.
StringBuffer responseString=new StringBuffer();
responseString.append("");
responseString.append("\r\n");
responseString.append("
responseString.append("
responseString.append("这里是单位");
responseString.append("
responseString.append("
responseString.append("这里是价格");
responseString.append("
responseString.append("
response.getWriter().write(responseString.toString());
最后你还需要加2个js方法到一开始的页上处理返回,下面的就是
第一个是固定的,里面的if (http_request.responseXML.getElementsByTagName('OperatLogo').length) setLogoContent();是根据不同的请求调用不同的处理方法.这里会调用setLogoContent(),这个方法是写你的业务逻辑的地方.
function processRequest() {
if (http_request.readyState == 4) {
if (http_request.status == 200) {
if (http_request.responseXML.getElementsByTagName('OperatLogo').length) setLogoContent();
} else {
window.alert("Request Error!" + http_request.statusText);
}
}
}
function setLogoContent() {
var XMLobj = http_request.responseXML;
var cunitforward=XMLobj.getElementsByTagName('cunit');
var cjiageforward=XMLobj.getElementsByTagName('cjiage');
//下面你自己写吧,就是把cunitforward和cjiageforward显示到你要显示的地方,这个方法我没测试,有可能有错误,你可以直接用alert把XMLobj打印出来,调试一下,最后,这都是我自己一个字一个字敲的,跟分迅速点啊.不明白发消息再问我吧.
}