2015-07-23 3 views
-1

У меня есть cfc, где функция возвращает запрос со списком сотрудников, который отображается в таблице. У меня есть форма сортировки на странице, где onclick заголовка столбца данные должны сортироваться на основе того, какой столбец кликается. Теперь у меня было все это, пока все запросы были на самой странице. Я пытаюсь переместить запросы в cfc сейчас. Я уверен, что у меня что-то не хватает. Может ли кто-нибудь указать мне, как получить отсортированную по результатам cfc onclick заголовка столбца?Значение формы передачи для cfc

<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

То, что вы ищете, вероятно, лучше обрабатывается через передний конец инструмента, как DataTables http://datatables.net/ – rodmunera

+0

Что означает ''

выглядеть? Является ли идентификатор сотрудника поле формы? – duncan

+2

Вы должны проверить 'arguments.order_by' и' arguments.show' в своем запросе. Как и было, он был бы уязвим для SQL-инъекций, поскольку они передаются прямо из формы. – beloitdavisja

ответ

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)> 
Смежные вопросы