我使用javascript创建过滤器。我正在使用ajax并收集价值。 Ajax请求:
IntPtr hwnd = (IntPtr)IE.HWND;
Servlet供应商:
if(window.XMLHttpRequest)
{
vendreq=new XMLHttpRequest();
}
else
{
vendreq=new ActiveXObject("Microsoft.XMLHTTP");
}
vendreq.onreadystatechange=function () {
/* if(b==0){
document.getElementById("details2").innerHTML="Select GIT more than 0";
} */
if((vendreq.readyState==4) && (vendreq.status==200)) {
venda= [];
venda.push(vendreq.responseText);
alert(venda.length);
} }
vendreq.open("Get","Vendor","true");
vendreq.send();
});
当我显示警告(venda)时,它显示多个值。当我检查数组长度时,它会显示一个。任何人都能告诉我这是什么原因吗?
过滤器:
ResultSet rs =ps.executeQuery();
while(rs.next()){
out.println(rs.getString("VNAME")+",");
out.println(rs.getString("VCODE")+",");
}
答案 0 :(得分:1)
根据我从您的回复文字模板中了解到的,您将收到以下值:
VNAME1,
VCODE1,
VNAME2,
VCODE2,
...
VNAME(N),
VCODE(N),
如果将结果保存在对象中然后以json的形式返回它将会很棒。
它看起来类似于:
"VALUES":[{
"VNAME": "VNAME1",
"VCODE": "VCODE1"
}, {
"VNAME": "VNAME2",
"VCODE": "VCODE2"
},
... {
"VNAME": "VNAME(N)",
"VCODE": "VCODE(N)"
}]
另外针对您当前的情况(当您返回一个普通字符串时)我建议您使用一个独特的字符串拆分器来创建一个数组
out.println(rs.getString("VNAME")+",");
out.println(rs.getString("VCODE")+"+++");
所以它会将字符串返回为:
VNAME1,
VCODE1+++
VNAME2,
VCODE2+++
现在删除venda= [];
而不是venda.push(vendreq.responseText);
使用venda = vendreq.responseText.split("+++");
这将创建一个返回的字符串数组"VNAME1,VCODE1","VNAME2,VCODE2"...
相信我这是一个糟糕的实现方法。改为使用JSON。
添加了代码段,例如:
str="VNAME1,VCODE1+++VNAME2,VCODE2+++VNAME3,VCODE3+++";
venda=str.split("+++");
alert(venda.length-1 +" Values: "+venda);