使用coldfusion的jquery可排序更新数据库

时间:2011-07-06 14:58:48

标签: jquery sql-server database coldfusion jquery-ui-sortable

在PHP中有很多方法可以做到这一点,但我没有找到任何使用jQuery在Coldfusion中执行此操作的帖子。如果您有链接,请分享。否则,这就是我正在做的事情:

我有四个部分(第一部分,第二部分,第三部分,第四部分缺少更好的术语),每个部分内都有一个项目列表(每个部分中有0-15个项目)。客户端需要能够手动对项目进行排序(我使用jQuery可排序来执行此操作 - 仅在一个部分内,而不是在每个部分之间)。我不想通过“保存”按钮给用户额外的步骤。我想在删除列表项时将更新的订单存储在数据库中。我有排序部分工作,现在我需要用新订单更新我的mssql数据库,我在循环中遇到了麻烦。

使用FF firebug,这是通过post传递的内容而recordsArray []是我似乎无法弄清楚如何循环:

recordsArray[]=1&recordsArray[]=3&recordsArray[]=2&action=updateRecordsListings

我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

我写了两篇不同程度的博客文章。

首先使用数据表并拖放:

http://www.mccran.co.uk/index.cfm/2011/5/15/Combining-JQuery-Datatable-with-drag-and-drop-functions

我认为第二个更接近您想要的是拖放服务器端应用程序:

http://www.mccran.co.uk/index.cfm/2011/6/17/JQuery-Sortable-Drag-and-Drop-lists-and-a-server-side-AJAX-save

它显示了如何拖放元素并使用ajax请求来保存数据。

答案 1 :(得分:1)

以为我会继续把这个标记为正确的答案:4年后,它仍然像冠军一样工作:http://www.aliaspooryorik.com/blog/index.cfm/e/posts.details/post/285

我几乎在博客文章中采用了解决方案,并将变量重命名为我在项目中使用的变量。我不再是该项目的一部分,所以我无法访问源代码,但我可以看到内部网上的网页,看到解决方案仍在那里。这是我现在能为此提供的最佳服务。

摘要:如果链接中断,博客帖子会显示如何使用ajax将已排序的id id_5,id_1,id_3,id_2...列表传递给CFC。 CFC循环遍历列表,提取id值并使用当前列表位置作为“排序顺序”。然后更新各个记录,并删除任何删除的ID。有关完整示例,请参阅博客条目。

<cftransaction>

    <cfloop list="#arguments.orderedList#" index="ndx">

        <cfset id = Val( ListLast( ndx, "_" ) )>
        <cfset position = position+1>
        <cfset updatedids = ListAppend( updatedids, id )>

        <cfquery datasource="mydsn">
            update myTable 
            set  order = <cfqueryparam value="#position#" cfsqltype="cf_sql_integer">
            where id = <cfqueryparam value="#id#" cfsqltype="cf_sql_integer">
        </cfquery>

    </cfloop>

    <!--- delete any items not in the list --->
    <cfquery datasource="mydsn">
        delete from myTable
        where id not in ( <cfqueryparam value="#updatedids#" cfsqltype="cf_sql_integer" list="true"> )
    </cfquery>

</cftransaction>