了解如何在 Dreamweaver 中构建母版页并创建指向详情页面的关联。
用户界面已经在 Dreamweaver 和更高版本中做了简化。 因此,您可能在 Dreamweaver 和更高版本中找不到本文中描述的一些选项。 有关详细信息,请参阅此文章。
关于主页和详细页
母版页和详情页面是用于组织和显示记录集数据的页面集。这些页面为您网站的访客提供概述和详细视图。母版页列出所有记录,并包含指向详情页面的链接,这些详情页面显示每条记录的其他信息。
您可以通过插入数据对象来构建母版页和详情页面,实现在一次操作中创建母版页和详情页面;也可以使用服务器行为以更灵活的方式构建母版页和详情页面。使用服务器行为构建母版页和详情页面时,您首先创建母版页来列出记录,然后添加从列表到详情页面的关联。
生成主页
开始之前,请确保为您的网站定义数据库连接。
在"绑定"面板中("窗口">"绑定"),单击加号(+)按钮,选择"记录集",然后选择选项。如果要编写自己的 SQL 语句,请单击“高级”。
确保记录集包含创建母版页所需的所有表列。记录集还必须包括含有每条记录唯一键的表列,即记录 ID 列。在下面的示例中,"代码"列包含每条记录的唯一键。
通常,母版页上的记录集从数据库表中提取几列,而详情页面上的记录集从同一表中提取更多列以提供额外的详细信息。
记录集可以由用户在运行时定义。有关更多信息,请参阅 构建搜索和结果页面。
将插入点放在希望动态表出现在页面上的位置。选择"插入">"数据对象">"动态数据">"动态表",设置选项,然后单击"确定"。
如果您不想向用户显示记录 ID,可以从动态表中删除该列。单击页面上的任意位置将焦点移动到页面。将光标移动到动态表中列顶部附近,直到列单元格以红色轮廓显示,然后单击以选择列。按 Delete 键从表中删除列。
创建指向详细页的链接
构建母版页并添加记录集后,您需要创建打开详情页面的链接。然后修改链接以传递用户选择的记录的 ID。详情页面使用此 ID 在数据库中查找请求的记录并显示它。
您使用相同的流程创建链接以更新页面。结果页面类似于母版页,更新页面类似于详细页面。
打开详细页面并传递记录 ID (ColdFusion, PHP)
在动态表格中,所选文本显示为已被链接。 当页面在服务器上运行时,链接应用于每个表格行中的文本。
?recordID=#recordsetName.fieldName#
问号告诉服务器后面跟随的是一个或多个 URL 参数。单词 recordID 是 URL 参数的名称(您可以编造任何喜欢的名称)。记录 URL 参数的名称,因为您稍后将在详细页面中使用它。
等号后的表达式是参数的值。在这种情况下,值由 ColdFusion 表达式生成,该表达式从记录集返回记录 ID。动态表中的每一行都会生成不同的 ID。在 ColdFusion 表达式中,将 recordsetName 替换为您的记录集名称,将 fieldName 替换为记录集中唯一标识每条记录的字段名称。大多数情况下,该字段将由记录 ID 编号组成。在以下示例中,该字段由唯一的位置代码组成。
locationDetail.cfm?recordID=#rsLocations.CODE#
页面运行时,记录集 CODE 字段的值会插入到动态表的相应行中。例如,如果澳大利亚堪培拉租赁点的代码是 CBR,则在动态表的堪培拉行中会使用以下 URL:
locationDetail.cfm?recordID=CBR
?recordID=<?php echo $row_recordsetName['fieldName']; ?>
问号告诉服务器后面跟着一个或多个 URL 参数。单词 recordID 是 URL 参数的名称(您可以使用任何喜欢的名称)。记下 URL 参数的名称,因为稍后您将在详细信息页面中使用它。
等号后面的表达式是参数的值。在这种情况下,该值由 PHP 表达式生成,该表达式从记录集返回一个记录 ID。为动态表中的每一行生成\n不同的 ID。在 PHP 表达式中,将 recordsetName 替换为您的记录集名称,将 fieldName 替换为记录集中用于唯一标识每条记录的字段名称。在大多数情况下,该字段将包含记录 ID 编号。在以下示例中,该字段包含唯一的位置\n代码。
locationDetail.php?recordID=<?php echo $row_rsLocations['CODE']; ?>
当\n页面运行时,记录集的 CODE 字段的值将插入\n动态表中的相应行。例如,如果澳大利亚堪培拉的租赁位置代码是 CBR,则在动态表的堪培拉行中使用以下 URL:
locationDetail.php?recordID=CBR
打开详细信息页面并传递\n记录 ID (ASP)
会出现一个围绕所选文本的特殊链接。 当用户\n单击链接时,"转到详细信息页面"服务器行为将传递包含记录 ID 的\nURL 参数给详细信息页面。例如,如果 URL 参数名为 id,详细信息页面名为 customerdetail.asp,则当用户单击链接时,URL 看起来类似如下:
http://www.mysite.com/customerdetail.asp?id=43
URL 的第一部分 http://www.mysite.com/customerdetail.asp 打开详细信息页面。第二部分 ?id=43 是 URL 参数。 它告诉详细页要查找和显示哪个记录。 术语\nid 是 URL 参数的名称,43 是其值。在此示例中,URL 参数包含记录的 ID 编号 43。
在详细信息页面上查找并显示所请求的记录
为了显示母版页请求的记录,您必须定义一个记录集来保存单个记录,并将记录集列绑定到详细信息页面。
将出现简单的“记录集”或“数据集”对话框。 如果出现高级对话框,请单击"简单"。
记录集可以与母版页上的记录集相同或不同。通常详细信息页面记录集具有更多列以显示更多详细信息。
如果记录集不同,请确保详细信息页面上的记录集至少包含一个与母版页上的记录集共有的列。共同列通常是记录 ID 列,但也可以是相关表的联接字段。
要在记录集中仅包含表的某些列,请单击"选定",然后通过按住 Ctrl 键单击 (Windows) 或按住 Command 键单击 (Macintosh) 在列表中选择所需的列。
从"筛选条件"区域的第一个弹出菜单中,选择记录集中包含与母版页传递的 URL 参数值匹配的值的列。例如,如果 URL 参数包含记录 ID 号,请选择包含记录 ID 号的列。在上一节讨论的示例中,名为 CODE 的记录集列包含与母版页传递的 URL 参数值匹配的值。
从第一个菜单旁边的弹出菜单中,选择等号(应该已经选定)。
从第三个弹出菜单中选择“URL 参数”。 母版页使用 URL 参数将信息传递给详细信息页面。
在第四个框中,输入母版页传递的 URL 参数的名称。
将母版页和详细信息页面都上载到服务器后,您可以在浏览器中打开母版页。单击母版页上的详细信息链接后,详细信息页面会打开并显示有关所选记录的更多信息。
查找特定记录并在页面上显示它 (ASP)
您可以添加服务器行为来查找记录集中的特定记录,以便在页面上显示记录数据。服务器行为仅在使用 ASP 服务器模型时可用。
另一个页面传递给当前页面的 URL 参数中包含的记录 ID。您可以使用 HTML 超链接或 HTML 表单在其他页面上创建 URL 参数。有关更多信息,请参阅使用表单从用户那里收集信息。
为当前页所定义的记录集。 服务器行为从此记录集中提取记录详细信息。有关说明,请参阅在不编写 SQL 的情况下定义记录集或通过编写 SQL 定义高级记录集。
绑定到该页面的记录集列。 必须在页面上显示特定记录。有关更多信息,请参阅使文本动态化。
例如,如果其他页面传递记录 ID 号码,请选择包含记录 ID 号码的列。
例如,如果其他页面用于打开详细信息页面的 URL 是 id=43,请在"匹配 URL 参数"框中输入id。
下次浏览器请求页面时,服务器行为将读取由其他页面传递的 URL 参数中的记录 ID,并移动到记录集中的指定记录。
一次性构建主页面和详细页面
开发 Web 应用程序时,您可以使用母版详细信息页面集数据对象快速构建母版页和详细信息页面。
该页将成为主页。
确保记录集不仅包含母版页所需的所有列,还包含详细页所需的所有列。通常,母版页上的记录集从数据库表中提取几个列,而详细信息页面上的记录集从同一表中提取更多列以提供额外的详细信息。
默认情况下,会选择记录集中的所有列。 如果您的记录集包含唯一键列(如recordID),请选择它并单击减号 (-) 按钮,这样它就不会在您的页面上显示。
在母版页上,记录集列将水平排列在表格中。单击向上箭头将列向左移动;单击向下箭头将列向右移动。
例如,如果您希望母版页上的每个产品名称都有一个关联到详细页面的链接,请选择包含产品名称的记录集列。
通常,所选的列就是记录 ID 号。 该值会传递到详细页面,以便标识用户选择的记录。
默认情况下会选择此选项;并非所有服务器模型都会显示该选项。
默认情况下,会选择母版页记录集中的所有列。如果记录集包含唯一键列(如 recordID),请选择它并单击减号 (-) 按钮,这样它就不会在详细页面上显示。
在详细页面上,记录集列在表格中垂直排列。单击向上箭头会将列向上移动;单击向下箭头会将列向下移动。
数据对象会创建详细页面(如果您尚未创建),并将动态内容和服务器行为添加到母版页和详细页面。
您可以使用 Dreamweaver 页面设计工具完全自定义每个页面的布局。您还可以通过在"服务器行为"面板中双击来编辑服务器行为。
使用数据对象创建母版页和详细页面后,使用"服务器行为"面板("窗口">"服务器行为")修改数据对象插入到页面中的各种构建块。