gpt4 book ai didi

javascript数组长度为1

转载 作者:行者123 更新时间:2023-11-28 17:25:24 25 4
gpt4 key购买 nike

我正在使用 javascript 创建过滤器。我正在使用 ajax 并收集值(value)。Ajax 请求:

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();
});

Servlet vendor :

ResultSet rs =ps.executeQuery();    
while(rs.next()){
out.println(rs.getString("VNAME")+",");
out.println(rs.getString("VCODE")+",");
}

当我显示即 alert(venda) 时,它会显示多个值。当我检查数组 length 时,它显示一个。谁能告诉我这是什么原因?

过滤器:

<div class="optionsDiv2" style="display:inline;">     
Filter by Vendor <select name="item" id="vendor">
vendb=document.getElementsByName("venda");
while(vendb.length) {
<option>vendb</option>

}
</select>
</div>

最佳答案

据我从您的回复文本模板中了解到,您收到的值如下:

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"...

And trust me its a bad implementation method. Use JSON instead.

例如添加代码段:

str="VNAME1,VCODE1+++VNAME2,VCODE2+++VNAME3,VCODE3+++";
venda=str.split("+++");
alert(venda.length-1 +" Values: "+venda);

关于javascript数组长度为1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40447486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com