如何在 Dreamweaver 中生成搜索页和结果页
注意:用户界面已经在 Dreamweaver CC 和更高版本中做了简化。因此,您可能在 Dreamweaver CC 和更高版本中找不到本文中描述的一些选项。有关详细信息,请参阅此文章。
关于搜索页和结果页
可以使用 Dreamweaver 生成一组页面,以便用户可以搜索您的数据库并查看搜索结果。
在大多数情况下,至少需要两个页面才能将此功能添加到 Web 应用程序中。第一个页面包含用户可以在其中输入搜索参数的 HTML 表单。尽管此页面不执行任何实际的搜索,但它仍被称为“搜索页”。
所需的第二个页面是结果页,它执行大部分搜索工作。结果页执行以下任务:
- 读取搜索页提交的搜索参数
- 连接到数据库并查找记录
- 使用找到的记录建立记录集
- 显示记录集的内容
或者,您还可以添加详细页。详细页为用户提供有关结果页上的特定记录的更多信息。
如果只有一个搜索参数,Dreamweaver 允许您将搜索功能添加到 Web 应用程序中,而不必使用 SQL 查询和变量。只需简单地设计页面并完成几个对话框。如果您有多个搜索参数,则需要编写一条 SQL 语句并为其定义多个变量。
Dreamweaver 将 SQL 查询插入到页面中。当该页面在服务器上运行时,会检查数据库表中的每一条记录。如果某一记录中的特定字段满足 SQL 查询条件,则将该记录包含在记录集中。SQL 查询将生成一个只包含搜索结果的记录集。
例如,现场销售人员可能知道某个区域中收入超过某一水平的客户的信息。在搜索页上的表单中,该销售人员的同事输入一个地理区域和最低收入水平,然后单击“提交”按钮将这两个值发送给服务器。在服务器上,这两个值被传递给结果页的 SQL 语句,然后该语句创建一个记录集,其中只包含指定区域中收入超过指定水平的客户。
生成搜索页
Web 上的搜索页通常包含用户在其中输入搜索参数的表单字段。搜索页至少必须具有一个带有“提交”按钮的 HTML 表单。
若要向搜索页添加 HTML 表单,请完成以下步骤。
- 打开搜索页或一个新页面,然后选择“插入”>“表单”>“表单”。
将在页面上创建一个空表单。您可能需要启用“不可见元素”(“查看”>“可视化助理”>“不可见元素”)来查看表单的边界,边界由红色的细线表示。
- 从“插入”菜单中选择“表单”,添加表单对象以供用户输入搜索参数。
表单对象包括文本字段、菜单、选项和单选按钮。可以添加任意多的表单对象以帮助用户细化搜索操作。但是请记住,搜索页上搜索参数的数目越多,SQL 语句就将越复杂。
- 在表单上添加一个“提交”按钮(“插入”>“表单”>“按钮”)。
- (可选)通过以下方法更改“提交”按钮的标签文字:选择该按钮,打开属性检查器(“窗口”>“属性”),并在“值”框中输入一个新值。
下一步,您将告诉表单当用户单击“提交”按钮时向何处发送搜索参数。
- 通过在“文档”窗口底部的标签选择器中选择 <form> 标签来选择表单,如下所示:
- 在该表单的属性检查器中的“动作”框中,输入将执行数据库搜索的结果页的文件名。
- 在“方法”弹出菜单中,选择下列方法之一确定表单如何将数据发送到服务器:
- GET 通过将表单数据作为查询字符串附加到 URL 来发送这些数据。由于 URL 的长度限制为 8192 个字符,因此不要将 GET 方法用于较长的表单。
- POST 在消息正文中发送表单数据。
- Default 使用浏览器的默认方法(通常为 GET)。
搜索页就完成了。
生成简单的结果页
用户单击表单的“搜索”按钮时,搜索参数即发送到服务器上的结果页。由服务器上的结果页(而不是浏览器上的搜索页)负责从数据库检索记录。如果搜索页只向服务器提交一个搜索参数,则您无需 SQL 查询和变量即可生成结果页。您可以创建一个具有过滤器的基本记录集,该过滤器能够排除不满足搜索页所提交的搜索参数的记录。
注意:如果具有多个搜索条件,则必须使用高级“记录集”对话框来定义记录集(请参阅生成高级结果页)。
创建存放搜索结果的记录集
- 在“文档”窗口中打开结果页。
如果您还没有结果页,请创建一个空白的动态页(“文件”>“新建”>“空白页”)。
- 通过下列方法创建一个记录集:打开“绑定”面板(“窗口”>“绑定”),单击加号 (+) 按钮,并从弹出菜单中选择“记录集”。
- 确保出现简单“记录集”对话框。
注意:如果出现的是高级对话框,则通过单击“简单”按钮切换到简单对话框。
- 输入记录集的名称并选择一个连接。
该连接应该连接到包含希望用户搜索的数据的数据库。
- 在“表”弹出菜单中,选择数据库中要搜索的表。
注意:在单参数搜索中,可以只在一个表中搜索记录。若要同时搜索多个表,必须使用高级的“记录集”对话框并定义一个 SQL 查询。
- 若要使记录集中只包括某些表列,请单击“已选定”,然后按住 Ctrl 单击 (Windows) 或按住 Command 单击 (Macintosh) 列表中所需的列。
您应该只包括含有您要在结果页显示的信息的列。
暂时使“记录集”对话框保持打开状态。下一步将使用该对话框获取搜索页发送的参数,并创建一个记录集过滤器来排除不满足参数的记录。
创建记录集过滤器
- 在“筛选”区域中的第一个弹出菜单中,选择要在其中搜索匹配记录的数据库表中的一列。
例如,如果搜索页发送的值是城市名,则在包含城市名的表中选择列。
- 从第一个菜单旁边的弹出菜单中,选择等号(它应该为默认值)。
- 从第三个弹出式菜单中,选择“表单变量”(如果搜索页上的表单使用 POST 方法),或者选择“URL 参数”(如果搜索页上的表单使用 GET 方法)。
搜索页使用表单变量或是 URL 参数将信息传递到结果页。
- 在第四个框中,输入接受搜索页上的搜索参数的表单对象的名称。
对象名称也兼作为表单变量名称或 URL 参数。可以通过下面的方法获取此名称:切换到搜索页,单击表单上的表单对象以选择它,并在属性检查器中查看对象的名称。
例如,假设您希望创建一个只包括到特定国家/地区的探险旅程的记录集。假设表中有一个名为 TRIPLOCATION 列。另外还假设搜索页上的 HTML 表单使用 GET 方法并包含一个名为 Location 的菜单对象(它显示国家/地区列表)。下例显示了应如何设置“筛选”部分:
- (可选)单击“测试”,输入一个测试值,然后单击“确定”连接到数据库并创建一个记录集实例。
测试值模拟本来应由搜索页返回的值。单击“确定”关闭测试记录集。
- 如果您对该记录集感到满意,请单击“确定”。
将在页面中插入一个服务器端脚本,该脚本在服务器上运行时将检查数据库表中的每条记录。如果某一记录中的指定字段满足过滤条件,则将该记录包含在记录集中。此脚本会生成一个只包含搜索结果的记录集。
下一步是在结果页上显示记录集。有关详细信息,请参阅显示搜索结果。
生成高级结果页
如果搜索页向服务器提交多个搜索参数,则必须为结果页编写一个 SQL 查询并在 SQL 变量中使用搜索参数。
注意:如果仅有一个搜索条件,则可以使用简单“记录集”对话框来定义记录集(请参阅生成简单的结果页)。
- 在 Dreamweaver 中打开结果页,然后通过下面的方法创建一个记录集:打开“绑定”面板(“窗口”>“绑定”),单击加号 (+) 按钮,然后从弹出菜单中选择“记录集”。
- 确保出现了高级“记录集”对话框。
高级对话框有一个用于输入 SQL 语句的文本区域。如果出现的是简单对话框,则请通过单击“高级”按钮切换到高级对话框。
- 输入记录集的名称并选择一个连接。
该连接应该连接到包含希望用户搜索的数据的数据库。
- 在 SQL 文本区域中输入一条 Select 语句。
确保该语句包含一个 WHERE 子句,并且该子句带有可以用来保存搜索参数的变量。在下例中,变量名为 varLastName 和 varDept:
SELECT EMPLOYEEID, FIRSTNAME, LASTNAME, DEPARTMENT, EXTENSION FROM EMPLOYEE ¬ WHERE LASTNAME LIKE 'varLastName' ¬ AND DEPARTMENT LIKE 'varDept'
若要减少键入量,可以使用高级“记录集”对话框底部的数据库项目树。有关说明,请参阅通过编写 SQL 来定义高级记录集。
有关 SQL 语法的帮助,请参阅 SQL 入门,网址为 www.adobe.com/go/learn_dw_sqlprimer_cn 。
- 通过单击“变量”区域中的加号 (+) 按钮并输入变量名、默认值(没有运行时值返回时变量应采用的值)和运行时值(通常是存放浏览器所发送值的服务器对象,如请求变量),将搜索参数的值赋给 SQL 变量。
在下面的 ASP 示例中,搜索页上的 HTML 表单使用 GET 方法并包含一个名为 LastName 的文本字段和一个名为 Department 的文本字段:
在 ColdFusion 中,运行时值为 #LastName# 和 #Department#。在 PHP 中,运行时值为 $_REQUEST["LastName"] 和 $_REQUEST["Department"]。
- (可选)单击“测试”使用默认的变量值创建一个记录集实例。
默认值模拟本来应由搜索页返回的值。单击“确定”关闭测试记录集。
- 如果您对该记录集感到满意,请单击“确定”。
SQL 查询将插入到您的页面中。
下一步是在结果页上显示记录集。
显示搜索结果
创建保留搜索结果的记录集后,您必须在结果页上显示这些信息。显示记录的过程十分简单,只需将每个列从“绑定”面板拖动到结果页上即可。可以添加导航链接以便在记录集中向前和向后移动,或者可以创建重复区域在页面上显示多条记录。您还可以将链接添加到详细页。
有关在页面上显示动态内容(而不是在动态表格中显示结果)的方法的详细信息,请参阅显示数据库记录。
- 将插入点放在结果页面上想要显示动态表格的地方,然后选择“插入”>“数据对象”>“动态数据”>“动态表格”。
- 通过选择您所定义的用来放置搜索结果的记录集完成“动态表格”对话框。
- 单击“确定”。用于显示搜索结果的动态表格将被插入到结果页面中。
创建结果页的详细页
您的搜索页和结果页集可包括一个详细页,以显示与结果页上的特定记录有关的更多信息。这种情况下,结果页兼作为主/详细页集中的主页。
创建一个链接以打开相关的页面 (ASP)
您可以创建打开相关页面并将现有参数传递到该页面的链接。仅当使用 ASP 服务器模型时,服务器行为才可用。
在将“转到相关页面”服务器行为添加到页面前,请确保该页面从另一个页面接收表单或 URL 参数。服务器行为的工作是将这些参数传递到第三个页面。例如,可以将结果页接收的搜索参数传递到另一个页面,从而使用户不必再次输入搜索参数。
另外,可以在页面上选择用作指向相关页面的链接的文本或图像,或者在不选择任何内容的情况下将指针放在该页面上即可插入链接文本。
- 在“转到相关页面”框中,单击“浏览”并找到相关页面文件。
如果当前页面向自身提交数据,则输入当前页面的文件名。
- 如果希望传递的参数直接从使用 GET 方法的 HTML 表单获得,或者列在该页的 URL 中,则请选择“URL 参数”选项。
- 如果希望传递的参数直接从使用 POST 方法的 HTML 表单获得,则请选择“表单参数”选项。
- 单击“确定”。
当单击新链接时,页面使用查询字符串将参数传递到相关页面。
更多此类内容
- 定义动态内容源
- 创建 Web 表单
- 在一次操作中生成主页和详细页
- 使用表单从用户处收集信息