Это маленький вспомогательный метод, который я создал, который обрабатывает обмен сортировкой.чтобы использовать просто передать имя столбца помощнику в вашей ссылке, другой аргумент предназначен для настройки помощника:
<a href="mypage.cfm?sortby=numb&sortorder=#swapSortOrder('numb')#">Number</a>
<cffunction name="swapSortOrder" returntype="string">
<cfargument name="column" type="string" required="true">
<cfargument name="sortByParams" type="string" required="false" default="sortby">
<cfargument name="sortOrderParams" type="string" required="false" default="sortorder">
<cfargument name="ascending" type="string" required="false" default="asc">
<cfargument name="descending" type="string" required="false" default="desc">
<cfif
!StructKeyExists(url, arguments.sortByParams)
OR !StructKeyExists(url, arguments.sortOrderParams)
OR arguments.column NEQ url[arguments.sortByParams]
OR url[arguments.sortOrderParams] eq arguments.descending
>
<cfreturn arguments.ascending>
</cfif>
<cfreturn arguments.descending>
</cffunction>
Теперь я расскажу вам об этом, как вы делаете это в настоящее время сстолбец и порядок в одной переменной ЧРЕЗВЫЧАЙНО опасны.я настоятельно рекомендую вам следовать моему примеру с ссылками и разбить столбец и порядок на две переменные.
почему?это делает добавление безопасности очень простым.на странице, на которую ссылается ссылка (в данном случае mypage.cfm), вам необходимо отфильтровать переменные sortby и sortorder, чтобы предотвратить атаки с использованием SQL-инъекций.
Обычно я создаю список известных столбцов, которые людиможно отсортировать и затем отфильтровать его:
<cfset _columns="numb,title,name,phone,email">
<cfif !ListFindNoCase(_columns, url.sortby)>
<cfset url.sortby = "title">
</cfif>
То же самое относится к сортировщику:
<cfset _order = "asc,desc">
<cfif !ListFindNoCase(_order, url.sortorder)>
<cfset url.sortorder = "asc">
</cfif>