做項目時,經常遇到要把數據庫的內容放到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 閱讀(95)
評論(0) 編輯 收藏