在PHP中有很多方法可以做到这一点,但我没有找到任何使用jQuery在Coldfusion中执行此操作的帖子。如果您有链接,请分享。否则,这就是我正在做的事情:
我有四个部分(第一部分,第二部分,第三部分,第四部分缺少更好的术语),每个部分内都有一个项目列表(每个部分中有0-15个项目)。客户端需要能够手动对项目进行排序(我使用jQuery可排序来执行此操作 - 仅在一个部分内,而不是在每个部分之间)。我不想通过“保存”按钮给用户额外的步骤。我想在删除列表项时将更新的订单存储在数据库中。我有排序部分工作,现在我需要用新订单更新我的mssql数据库,我在循环中遇到了麻烦。
使用FF firebug,这是通过post传递的内容而recordsArray []是我似乎无法弄清楚如何循环:
recordsArray[]=1&recordsArray[]=3&recordsArray[]=2&action=updateRecordsListings
我们将不胜感激。
答案 0 :(得分:1)
我写了两篇不同程度的博客文章。
首先使用数据表并拖放:
http://www.mccran.co.uk/index.cfm/2011/5/15/Combining-JQuery-Datatable-with-drag-and-drop-functions
我认为第二个更接近您想要的是拖放服务器端应用程序:
它显示了如何拖放元素并使用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>