-->ColdFusion 初级教程-->建立HTML查询表单

ColdFusion

后页 前页
目录
北极星书库
建立HTML查询表单


创建动态参数的最常用的方法是使用作为用户界面的表单(Form)。你可以在表单中包含文本框,选择框,单选按钮,多选按钮等,供用户用来输入信息。表单很容易建立,并可提供许多灵活的数据输入选项。表单提交时,Form变量会自动被创建,你可以利用这些变量执行对数据源的查询。


除了HTML表单,你还可以用ColdFusionCFFORM标签建立表单。关于这方面的详细内容后文有述。


例子:查询表单


下面的例子是一个简单的查询表单:


<FORM ACTION="employeesearch.cfm" METHOD="Post">


<PRE>


Last Name: <INPUT TYPE="text"


NAME="LastName">


Department:


<SELECT NAME="Department">


<OPTION>Accounting


<OPTION>Administration


<OPTION>Engineering


<OPTION>Sales


</SELECT>


<INPUT TYPE="Submit" VALUE="Search">


</PRE>


</FORM>


这个表单有两项输入:LastNameDepartment.用户可以在文本框中输入名字,从选择列表中选择一个部门。每个OPTION标签提供给用户一个选项。当提交按钮被点击时,ACTION属性所指定的文件会被打开,Form变量作为动态参数被传递给该文件。


假设用户输入了名字“Peterson”并选择了“Sales”。当她点击提交按钮时,下面的Form变量会被传递给文件employeesearch.cfm


LastName=Peterson


Department=Sales


设置表单的ACTION属性和METHOD属性


你必须设置表单的ACTION属性,告诉流览器当用户点击提交按钮时调用哪一个文件。你还必须将表单的METHOD属性设置为Post。在下面的例子中,当用户点击提交按钮时,调用employeesearch.cfm文件。


<FORM ACTION="employeesearch.cfm" METHOD="Post">


实现数据查询字段


为表单建立查询字段非常简单。你只需要为你想搜索的数据库字段建立表单查询字段。为了使文件有更好的可读性,可以让表单字段与数据库字段有相同的名字。


例如,如果你有一个表Employees,表中有三个字段FirstNameLastName,和Department,你的表单字段可以是:


Name: <INPUT TYPE="text" NAME="FirstName">


LastName: <INPUT TYPE="text" NAME="LastName">


Department: <INPUT TYPE="text" NAME="Department">


URL参数REQUSTTIMEOUT


当请求一个ColdFusion文件时,你可以在URL中传递REQUESTTIMEOUT参数,指定数据源连接超时的秒数,以防止一个数据源连接花费太多的时间。这个参数将覆盖ColdFusion Administrator中的缺省值。其使用的语法为:


http://myserver.com/cfpages?REQUESTTIMEOUT=100


例子:动态SQL


下面的文件searchform.cfm建立了一个查询表单:


<HTML>


<HEAD>


<TITLE>Employee Search</TITLE>


</HEAD>


<BODY>


<FORM ACTION="employeesearch.cfm" METHOD="Post">


<PRE>


Last Name: <INPUT TYPE="text" NAME="LastName">


Department: <SELECT NAME="Department">


<OPTION>Accounting


<OPTION>Administration


<OPTION>Engineering


<OPTION>Sales


</SELECT>


<INPUT TYPE="Submit" VALUE="Search">


</PRE>


</FORM>


</BODY>


</HTML>


当用户点击提交按钮时,下面的文件Employeesearch.cfm用来选择和显示查询结果:


<!--- CFML application page to implement employee search --->


<!--- Query the database --->


<CFQUERY NAME="EmployeeList"


DATASOURCE="CompanyDB">


SELECT *


FROM Employees


WHERE LastName = ?LastName#


AND Department = ?Department#


</CFQUERY>


<!--- Page header --->


<HTML>


<HEAD>


<TITLE>Employee Search Results</TITLE>


</HEAD>


<BODY>


<H2>Organization Search Results</H2>


<!--- Summarize search criteria for user --->


<CFOUTPUT>


<P>The search for #Form.LastName# in


the #Form.Department#


returned these results:</P>


</CFOUTPUT>


<--- Display results --->


<CFOUTPUT QUERY="EmployeeList">


<HR>


#FirstName# #LastName# (Phone: #PhoneNumber#)<BR>


</CFOUTPUT>


<!--- Page footer --->


<P>


Thank you for searching the employee database!</P>


<HR>


</BODY>


</HTML>


模式匹配查询


当你允许用户输入文本作为查询条件的一部分时,你通常不想查询与输入完全匹配的值,你通常需要查询与输入文本类似的值。在这种情况下,可以使用模式匹配查询。要实现模式匹配查询,可以将一个或多个通配符(在ODBC中用“%”表示)与LIKE运算符结合使用。


例如,让用户填充一个名为“LastName”的Form字段,查询一员工信息,可以用如下语法:


SELECT *


FROM Employees


WHERE LastName LIKE ‘#LastName#%’


这个查询返回每个其名字以用户输入值开头的员工的信息。例如,若输入“Jon”,返回的记录可能有”Jones””Jonson”


后页
前页
目录
北极星书库