6.2.3 重复区域
现在遇到了一个很严重的问题:刚才我们只能看到记录集中的第1条记录,那后面的记录怎么显示出来呢?Dreamweaver提供了【重复区域】及【记录集分页】的功能,只需要鼠标拖动就可以实现这个功能。
选取需要重复的部分,即表格中的第2行,如图6-23所示,然后在【服务器行为】面板中单击【+】按钮,从弹出的下拉菜单中选择【重复区域】如图6-24所示。
图6-23 选取表格第2行
图6-24 选择重复区域
之所以要确认选取的标签为
,是因为重复区域会使用【do…while】循环包围所作用的范围。而我们需要重复的仅是第2行的表格,在HTML中表格的行是使用 标签。确认选取的标签正确,执行时才不会发生错误。此时会弹出一个窗口(见图6-25),要求我们选择要重复记录的记录集,以及需要重复几条记录或显示全部记录。现在我们只建立了一个记录集,但日后若页面上有多个记录集时,就要注意别选错了。
同样地选择【活动数据视图】,这时就可以看到原来只有两行的表格已经增长到11行(见图6-26),而记录集内的前10条记录都显示在页面上了。
6-25 设置重复区域
图6-26
所有页面上的【服务器行为】都会被列在【应用程序】→【服务器行为】面板的清单中,在本例中我们选择重复10条记录。若想要修改服务器行为的设置,则可以通过双击该服务器行为来进行。
图6-27 双击服务器行为修改设置
程序代码导览
将页面切换到【代码】视图,在套用了【重复区域】服务器行为后,在程序代码当中的变化便是这行单元格的上下被【do…while】循环包围了,而重复的条件为第74行语句(见图6-28),用这样的循环可以达到将记录集中的记录全部输出才停止循环。
图6-28
如果刚刚不小心选到
标签,那这个循环就会包围一组。在建立记录集时我们就知道有50条记录都在记录集中,可是在这里怎么显示了10条记录呢?回头来检查下代码,如图6-29所示。
图6-29 查询语句被改写
我们发现数据库查询语句被改写过,在第40行变量$query_rsdb所用的SQL语句是以前介绍过的,但在第41行该变量会放到字符串的***个%s位置处。
sprintf("%s LIMIT %d,%d",$query_rsdb,$startRow_rsdb,$maxRows_rsdb);
由上述代码可知,%s表示字符串,后面两个%d表示数值,所要代入的值是$startRow_rsdb与$maxRows_rsdb。$maxRows_rsdb这个变量值与我们前面在重复区域所选择的重复10条记录是同步的,你可以看到第32行定义了这个变量的值。
如果将变量值替换进去,第41行就会变成像下面的这样:
$query_limit_rsdb = "SELECT * FROM profiles LIMIT 0, 10";
可以知道,Dreamweaver使用了一堆变量来记录在图形界面中所选择和设置的值,然后使用LIMIT子句来做到一次显示指定条数的记录。
现在,我们对重复区域有一个大致性的概念。这些程序还会与后面介绍的【记录集分页】搭配,从而使记录集中的记录可以以分页的方式来浏览。
【责任编辑:董书 TEL:(010)68476606】
点赞 0