<pre name="code" class="java">//JS代码
var xmlhttp;
function getYcl(){
var ckName=document.getElementById("ckName").value;
try{
//IE 5.0
xmlhttp = new ActiveXObject('Msxm12.XMLHTTP');
}catch(e){
try{
//IE 5.5 及更高版本
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}catch(e){
try{
//其他浏览器
xmlhttp = new XMLHttpRequest();
}catch(e){}
}
}
document.getElementById("yclName").options.length=1;
xmlhttp.open("post","ylrkTj.do?method=getYcl",true);
//在使用post方法提交请求时,需要设置HTTP头
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var ckName="ckName="+ckName;
ckName=encodeURI(ckName); //写一个不行。如果写一个就是????号
ckName=encodeURI(ckName);//写2个,则输出 %df%a4这可以
xmlhttp.send(ckName);
//创建请求结果处理程序
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4){
var str = xmlhttp.responseXML;
var item = str.getElementsByTagName("ycl");
//document.getElementById("yclName").innerHTML="选择原材料";
for (var i = 0; i < item.length; i++){
var name = item[i].getElementsByTagName("name")[0].childNodes[0].nodeValue;
var opt = new Option(name,name);
document.getElementById("yclName").add(opt);
}
}
}
}
//ACTION代码
/** * * 根据仓库名加载此仓库下的原材料 */
public ActionForward getYcl(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String ckName=request.getParameter("ckName");
List <String> yclList=ylrkTj.getYcl(form, request);
response.setContentType("text/xml;charset=utf-8");
PrintWriter out = response.getWriter();
out.print("<ycls>");
for (String string : yclList) {
System.out.println(string);
out.print("<ycl>");
out.print("<name>");
out.print(string);
out.print("</name>");
out.print("</ycl>");
}
out.print("</ycls>");
out.flush();
return null;
}
声明:本文在网上看见的收藏下,以前用struts1和buffalo,没有用个struts1和ajax的集合,所有收藏下;