将表单值传递给cfc

时间:2015-07-23 16:38:59

标签: coldfusion

我有一个cfc,其中一个函数返回一个查询,其中包含一个显示在表中的员工列表。我在页面上有一个排序表单,其中单击标题数据的列需要根据单击的列进行排序。现在,只要所有查询都在页面本身上,我就会全部工作。我正在尝试将查询移动到cfc。我相信我错过了一些基本的东西。任何人都可以请指出如何从列标题的cfc onclick获得排序结果?

 <script>
      function submitformnow(x){
      if (document.form.show.value == "DESC")
       {$('input[name=show]').val('ASC');}
          else{ $('input[name=show]').val('DESC');}
           $('input[name=order_by]').val(x);
           document.form.submit();
          }
    </script>

 <cffunction name="getemps" access="public" output="false" returntype="query">
    <cfargument name="emp_id" type="numeric" default="#variables.emp_id#" />
    <cfargument name="order_by" default="#variables.order_by#" type="string" required="no">
    <cfargument name="show" default="#variables.show#" type="string" required="no">

    <cfquery name="qemps" datasource="test">
        select * from emps
      <cfif len(trim(arguments.order_by)) and arguments.order_by NEQ '' and len(trim(arguments.show)) and arguments.show NEQ '' >
       ORDER BY #arguments.order_by# #arguments.show#
       </cfif>
    </cfquery>
</cffunction>
<cfset employee= new cfcs.employees() />
<cfset getemps = employee.getemps(emp_id,order_by,show) />//order_by, show are the form field here//

1 个答案:

答案 0 :(得分:0)

尝试

<cfset getemps = employee.getemps(form.emp_id,form.order_by,form.show)>

还要记住你的表格。变量,在引用它们之前确保它们存在。

<cfparam name="form.emp_id" default=0>
<cfparam name="form.order_by" default="">
<cfparam name="form.show" default="ASC">
<cfset getemps = employee.getemps(form.emp_id,form.order_by,form.show)>