您的位置:首页 > Web前端 > JavaScript

蛙蛙请教:动态拼接表格问题的解决

2005-04-22 14:59 337 查看
蛙蛙请教:动态拼接表格问题的解决
问题是这样的,我想从数据库取出记录后输出以下形式的表格,就是每4个记录集生成一个table,在每个table里分两行两列显示每个recordset,怎么动态生成呀?注意表格里有个ID的属性要从0开始递增
<table border=1 id=0><tr><td>rs(0)</td>
<td>rs(0)</td></tr><tr>
<td>rs(0)</td>
<td>rs(0)</td></tr></table>
<table border=1 id=1><tr><td>rs(0)</td>
<td>rs(0)</td></tr><tr>
<td>rs(0)</td>
<td>rs(0)</td></tr></table>
我们平时输出的记录集都是一行一个记录,偶尔也有分栏显示的,一行显示N个记录的,单这次还得在这个基础上每4个封闭一个表格,你还得保证生成的表格不能只有开标签没有闭标签的情况.
把问题转换一下
用1到某个数之间的数字生成一下表格,用js的document.write方法也行
其实说白了,这是一个算法问题
<table border=1 id=0><tr><td>1</td>
<td>2</td></tr><tr>
<td>3</td>
<td>4</td></tr></table>
<table border=1 id=1><tr><td>5</td>
<td>6</td></tr><tr>
<td>7</td>
<td>8</td></tr></table>
......以下省略,我想大家一定看出规律来了吧,还得考虑如果终止数不能被4整除的情况下还得保证生成的HTML标签的正确性,不能缺半拉,也不能显示不好,必要的时候还得考虑一个表格里上面一行显示2数字,而下面一行显示1个数字的情况,这样下面那个单元格必须跨两个单元格,比如说7的时候
问题解决,写了一上午才写出下面的算法
<SCRIPT LANGUAGE="JavaScript">
<!--
var j,max,str;
max = 100;
str="";
j=0;
for(var i = 1;i <= max;i++){
 if(i % 4 == 1){
  str += ("<table border=1 id=" + (j++) + "><tr><td>" + i + "</td>");
  if(i == max) str += ("</tr></table>");
 }
 if(i % 4 == 2){
  str += ("<td>" + i + "</td>");
  if(i == max){
   str += ("</tr></table>");
  }else{
   str += ("</tr><tr>");
  }
 }
 if(i % 4 == 3){
  str +=("<td")
  if(i == max) str +=(" colspan=2")
  str +=(">" + i + "</td>");
 }
  if(i % 4 == 0) str +=("<td>" + i + "</td></tr></table>");
}
//document.write(str);
//alert(str);
//-->
</SCRIPT>
<SCRIPT LANGUAGE="vbScript">
<!--
dim j,max,str
max=8
j=0
str=""
dim i
for i=0 to max
 if (i mod 4 = 1) then  
  str = str & "<table border=1 id=" & j & "><tr><td>" & i & "</td>"
  if (i = max) then str = str & "</tr></table>"
  j = j+1
 end if
 if(i mod 4 = 2) then
  str = str & "<td>" & i & "</td>"
  if(i = max)then
   str = str & "</tr></table>"
  else
   str = str & "</tr><tr>"
  end if
 end if
 if(i mod 4 = 3) then
  str = str & "<td"
  if(i = max) then str = str & " colspan=2"
  str = str &">" & i &"</td>"
 end if
 if(i mod 4 = 0 and i<>0) then str = str& "<td>" & i & "</td></tr></table>"
next
document.write(str)
'msgbox(str)
//-->
</SCRIPT>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息