posts - 495,  comments - 11,  trackbacks - 0

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

只有注册用户登录后才能发表评论。


网站导航: