2006年9月22日星期五

第九章 创建搜索页面

  你可以用 MX 创建让用户搜索数据库的页面。要创建这个功能至少需要两个页面,第一个页面包含了用户输入搜索参数的 HTML 表单。虽然这个页面不做任何实际的搜索,我们还是称它国搜索页面。需要的第二个页面是结果页面,它是实现搜索功能的“骨干”结果页面执行下例工作:
 
  读取搜索页面提交的搜索参数。
  与数据库连接并且搜索记录。
  将找到的记录创建一个记录集。
  显示这个记录集的内容。
 
  当然你还可以为搜索结果添加细节页面。细节页面在结果页面的基础上,给用户提供关于记录的更多信息。
 
  如果仅有一个搜索参数,MX 可以让你轻而易举的添加搜索功能,无须关心 SQL 查询语句和变量的问题。你只需要设计你的页面,填写两三个设置框就可以完成了。如果有多逐步形成搜索参数,此时就需要写 SQL 语句为它定义多个变量了。
 
  9.1 创建搜索页面
 
  搜索页面最典型的特点就是包含表单区域,这样用户就能输入搜索的参数。当用户单击表单的搜索按钮的时候,搜索参数就被发送到服务器的结果页面上了。在服务器端的结果页与浏览器端的搜索页是不一样的,它的责任是从数据库中中提取记录。
 
  要实现搜索功能需要创建两个页面:让用户输入搜索参数的搜索页面和显示搜索结果的结果页面。可以使这两个页面结合在一个页面上,但最基本的是我们的搜索页面必须含有提交按钮的 HTML 表单。
 
  1、首先给搜索页面添加 HTML 表单。
  打开搜索页面,插入一个空的表单。
  可以根据搜索的要求添加一些表单对象,要记住一定要添加一个提交表单的按钮。
 
  2、接着要告诉表单当用户提交按钮时,它往什么地方发送搜索参数。
 
  在状态条左边的标签选择器上单击标签,将表单选中,在表单属性面板上的“动作”框中填入将与数据库联系的结果页面的路径和名字,在“方法”下拉菜单里选择表单把数据发送到服务器的方法,如图 9.1 所示。
 
图 9.1 表单的属性设置
 
  “默认”使用浏览器默认的方法,通常为“GET”。
  “GET”将表单数据作为查询字符串附加在 URL 发送。由于 URL 被限制在 8192 个字符范围内,所以在发送一个大的表单时不使用“GET”方法。
  “POST”在信息中发送表单数据。
  搜索页面完成之后,接下来制作结果页面。
 
  9.2 创建结果页面
 
  结果页面是实现搜索功能的关键部分,它读取搜索页面的搜索参数,与数据库连接,并且搜索记录,然后将找到的记录创建一个记录集,最后显示这个记录集的内容。
 
  在搜索页面上我们有可能使用一个搜索参数,也可能使用多个搜索参数。下面我们分别看看这两种不同情况下结果页面是如何创建的。
 
  通过一个搜索参数查询:
 
  如果搜索页面向服务器提交一个搜索参数,那么可以不用 SQL 查询语句和变量来创建结果页面。可以创建一个基本的数据集,运用“筛选”将搜索页面提交的搜索参数中不包含的部分排除在外。
 
  按如下步骤创建一个包含搜索结果的记录集。
 
  1、在 MX 中打开结果页面,接着在数据绑定面板中单击“+”按钮,从下拉菜单中选择“记录集(查询)”创建一个新记录集。使用单一参数搜索,中能在一个表单中搜索,所以在这里只需要“简单”的记录集设置框。要同时搜索多个表,就必须使用“高级”的记录集设置框,定义 SQL 查询语句。
 
  2、输入记录集的名字,选择一个连接。 这个连接应该包括你希望用户搜索的数据库。在“表格”的下拉列表里,选择数据库中被搜索的表,如图 9.2 所示。
 
图 9.2 记录集设置对话框
 
  3、然后按住“Control”键,用鼠标在“选定的:”栏中选择要包含在记录集中的字段,这些字段的内容应该是你想在结果页面上显示的信息。
 
  4、紧接着将提取搜索页面发送来的参数,运用它来创建一个记录集的过滤,将不符合搜索参数的记录排除在外。
 
  5、在“筛选”的第一个下拉列表框中选择要与搜索参数相比较的字段名。例如搜索页面发送的值是“title”,那么就选择包含“title”的字段。
 
  6、在旁边的下拉列表框中选择等于符号,这表示要在字段中搜寻与用户查找内容一样的记录。当然你也可以选择其它的比较符号如:“<”“>”等。
 
  7、在第三个下拉菜单中如果在搜索页面使用的是“POST”方法,选择“表单变量”;如果在搜索页面使用的是“GET”方法,选择“URL参数”。这个选项指定了搜索页面发送的值被存放在服务器上什么位置。
 
  8、在旁边的文本框里,输入接受搜索页面上的搜索参数的表单对象名称。
 
  例如:创建一个数据集只包含数据库中文章的标题。在数据库表中这个字段叫做“title”。另外,在搜索页面上的HTML表单使用的是“GET”方法,并且表单中包含一个叫“title”的文本框,这个文本框让用户输入要搜索的标题。那么,我们的“筛选”设置就应该如上所示介绍的来设置。
 
  9、在设置框的最下边有一个“排序:”选项,这是选择搜索结果以数据库中的那个字段排序显示。比如我们选择“ID”,按“升序”排列。
 
  10、在关闭记录集的设置框之前,如果想测试一下能否搜索,单击“测试”按钮,输入一个测试的值,单击“确定”直接与记录集连接,如图 9.3 所示。
 
图 9.3 输入一个测试值
 
  11、搜索结果将模拟搜索页面显示出来,如图 9.4 所示。
 

图 9.4 模拟显示搜索的结果
 
  12、如果测试的结果没有问题,单击“确定”按钮,关闭设置框,完成记录集的定义。
 
  通过多个搜索参数查询
 
  如果搜索页面向服务器提交的搜索参数不止一个,那么在结果页面中必须使用 SQL 查询语句,在 SQL 变量中使用搜索参数。
 
  MX 在页面上插入 SQL 查询语句,然后服务器运行这个页面,数据库里的每个表的记录都将被查询一遍。如果字段中的记录符合 SQL 查询语句条件,这个记录将包括在记录集内。SQL 查询语句最终创建仅包括搜索结果的记录集。
 
  按下面步骤使用 SQL 在数据库中搜索记录。
 
  1、在 MX 中打开结果页面,接着单击数据绑定面板上的“+”按钮,从下拉菜单中选择“记录集(查询)”创建一个新记录集,如图 9.5 所示。
 
图 9.5 创建一个新记录集
 
  2、选择“高级”记录集设置对话框,如图 9.6 所示。
 
图 9.6 高级记录集对话框
 
  3、首先要输入记录集的名字和选择一个连接。这个连接必须是包含你希望用户搜索数据的数据库。
 
  4、接着在“SQL”文本区输入选择语句,在输入的语句中必须包含搜索参数的“WHERE”子句。
 
  例如,搜索变量叫做“title”的话,SQL 语句如下:
 
  SELECT title,content,date
  FROM lyb
  WHERE title=’colname’
  也可以在设置框的底部使用数据库项目列表和旁边的“添加到 SQL:”的系列按钮。
 
  5、接着可以给 SQL 变量赋予搜索参数的值。在“变量”中单击“+”按钮,输入变量名字,默认值和运行值。如果想测试一下,单击“测试”按钮,输入一个测试的值,单击“确定”直接与记录集连接。
 
  6、如果对测试结果满意的话,单击“确定”完成设置。要设置好多个搜索参数的查询,主要靠 SQL 的语法知识,如有必要请参考 SQL 的相关书籍。
 
  显示查询记录
 
  在创建了一个记录集来放置搜索结果之后,需要将搜索的结果显示出来。这是个比较简单的问题,跟我们前面讲过的添加动态内容的知识是一样的。从数据绑定面板中将对应的记录拖放到结果页面就可以了。另外还可以添加导航链接,设置一页中显示搜索结果的数目以及添加与细节页面的链拉等等,请参看前面相关章节内容。

没有评论: