【问题标题】:How to sort table ascending and descending by click state? MYSQL/ColdFusion如何按点击状态对表格进行升序和降序排序? MYSQL/ColdFusion
【发布时间】:2017-07-13 16:44:30
【问题描述】:

我有一个表格,我可以在其中单击标题以按不同的列对整个表格进行排序。 我想合并一些布尔状态,以便我可以单击一次以按该列升序对表格进行排序,然后再次单击使其降序。

这是我的代码:

 <th><A HREF="thispage.cfm?sorter=creationDate">Creation Date</A> </th>

 <cfif IsDefined("URL.sorter")>

 <cfquery datasource="Pad"  name="One">
 select * from meeting
 ORDER BY #URL.sorter# DESC
 </cfquery>

<cfelse>
 <cfquery datasource="Pad" name="One">
select * from meeting
 ORDER BY contactName
 </cfquery>
</cfif>

我相信它可以通过使用 cfset 创建一个布尔变量然后在单击表头时更改该变量状态并在第一个查询中将一个变量状态分配给 ASC 并将另一个变量状态分配给 DESC 来实现。我只是不确定如何实现它。

【问题讨论】:

  • 我认为您最好使用 javascript 或 jquery 来执行此操作。其实看看cfgrid。它可能已经具有此功能。我不确定,因为我从不使用它。
  • ORDER BY #URL.sorter# 这是一个sql注入风险。在直接在 sql 查询中使用之前,始终验证任何用户提供的输入。

标签: mysql coldfusion html-table click


【解决方案1】:

如果您愿意,您可以使用 jQuery 插件/javascript 很好地完成它。见:Choosing a jQuery datagrid plugin?

但是要按照老式的方式进行操作,您可以在&lt;th&gt; 中将方向添加到您的网址。 如果您只处理一个标题,您可以简单地执行以下操作:

<cfif structKeyExists(url, "sortOrder") and url.sortOrder eq "ASC">
    <url.sortOrder = "DESC"> 
<cfelse>
    <url.sortOrder = "ASC"> 
</cfif> 
<cfoutput>
    <A HREF="thispage.cfm?sorter=creationDate&sortOrder=#url.sortOrder#">Creation Date</A>
</cfoutput>

如果您使用多个标题,则还需要检查当前列的方向。

<cfif (structKeyExists(url,"sorter") and url.sorter eq "{thisColumn}")>
  and (structKeyExists(url, "sortOrder") and url.sortOrder eq "ASC")>
    <url.sortOrder = "DESC">
<cfelse>
    <url.sortOrder = "ASC">
</cfif>

您可能应该将它放入一个传递您正在检查的列的值的函数中,这样您就不会在每个 &lt;th&gt; 之前一遍又一遍地拥有相同的东西,DRY(不要重复自己)。

<A HREF="thispage.cfm?sorter=creationDate&sortOrder=#sortMe({thisColumn})#">{thisColumn}</A>

最后,在查询中添加方向

<cfquery datasource="Pad"  name="One">
    select 
        columnName1
        , columnName2
        , columnName3
    from 
        meeting
    ORDER BY 
        #URL.sorter# <cfif structKeyExists(url,"sortOrder")>#url.sortOrder#</cfif>
 </cfquery>

【讨论】:

    猜你喜欢
    • 2016-10-18
    • 1970-01-01
    • 1970-01-01
    • 2020-11-09
    • 2013-08-15
    • 1970-01-01
    • 2011-12-02
    • 2018-05-03
    相关资源
    最近更新 更多