做项目时,经常遇到要把数据库的内容放到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 阅读(104) 
评论(0)  编辑  收藏