做项目时,经常遇到要把数据库的内容放到javascript里。不管是单个字符串(String),还是集合(array)。javascript不能直接从数据库拿东西。所以只得借助一些其他条件。比如在页面上的标签里放id,name 之类的标志。
假如:
1,获取字符串:
user.getName() 是一条单个的记录。
<div id=a><%=user.getName() %></div>
那么javascript很容易获取 : var jsa= document.getElementById("a").innerText; (注:innerHTML也可以获取。)
2,获取集合,数组:
<form name="form1">
<table>
<%
Mgr mgr=new Mgr();
ArrayList list=mgr.getonebbs();
for(int i=0;i<list.size();i++)
{
Ext role=(Ext)list.get(i);
%>
<tr>
<td id="cid<%=i %>"><%=role.getId()%></td>
<td id="cname<%=i %>"><%=role.getName()%></td>
<td id="cpass<%=i %>"><%=role.getPass()%></td>
<td id="ctel<%=i %>"><%=role.getTel()%></td>
</tr>
<%
}%>
<input type="hidden" value="<%=list.size() %>" name="hid" >
</table>
</form>
javascript获取:
var cc = document.getElementById("hid").value; //首先获取长度,下面循环输出
var a=new Array();
var b=new Array();
var c=new Array();
var d=new Array();
var myData=new Array();
for(var j=0;j<cc;j++)
{
a[j]= document.getElementById("cid"+j).innerText;
b[j]= document.getElementById("cname"+j).innerText;
c[j]= document.getElementById("cpass"+j).innerText;
d[j]= document.getElementById("ctel"+j).innerText;
// alert(a+" "+b+" "+c+" "+d+" "); //测试
myData[j] = [a[j],b[j],c[j],d[j]] ;
}
这样就把数组放到myData中去了。
3,总结:
先把输出放到jsp页面上, //也就是把数据查询出来
然后在js里面获取jsp上的数据, //通过document.获取。 单个,循环。
然后放到string 或者 array里面。//OK
反正感觉多做了2步似的,绕了个圈,不过没办法,人家都是这样做的。。。
js数组的写法:
ArrI=new Array();
ArrI[0] = new Array("username1","0","609");
ArrI[1] = new Array("username2","609","610");
ArrI[2] = new Array("username3","609","611");
ArrII=new Array(
new Array("username1","0","609"),
new Array("username2","609","610"),
new Array("username3","609","611")
);
ArrIII=[];
ArrIII[0] = new Array("username1","0","609");
ArrIII[1] = new Array("username2","609","610");
ArrIII[2] = new Array("username3","609","611");
ArrIIII=[
["username1","0","609"],
["username2","609","610"],
["username3","609","611"]
];
一般最后一种..
posted on 2007-11-10 20:02
jadmin 阅读(94)
评论(0) 编辑 收藏