【问题标题】:jquery sortable update database using coldfusion使用coldfusion的jquery可排序更新数据库
【发布时间】:2011-07-06 14:58:48
【问题描述】:

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

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

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

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

您的帮助将不胜感激。

【问题讨论】:

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


【解决方案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 请求来保存数据。

【讨论】:

  • 我实际上是通过谷歌找到了你的两篇博客文章,但它们不是我要在这里寻找的,除非我错过了什么。
  • 我需要弄清楚如何循环传递到操作页面(处理更新列表顺序的页面)的数据。
【解决方案2】:

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

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

总结:如果链接断开,博客文章将展示如何使用 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>

【讨论】:

  • 您能否发布一些代码或详细说明您是如何解决该问题的?不鼓励仅链接答案,因为当链接断开或更改时,它们不再对其他人有用。 (顺便说一句,上面的链接目前正在返回 404 ...)。
  • 更新了链接,解决了 404;今后,我将包含可以在此处共享的代码 sn-ps,而不是链接到博客文章。我知道博客来来去去,但永远如此!至少我希望!
  • 希望你不介意,但我添加了一个简短的总结:) 如果你不喜欢它,请随意回滚。
  • 谢谢。我已经联系了负责这个项目的开发人员,现在要求提供一个 sn-p(我什至与他分享了这个 SO 帖子)。我还没有收到回音,你的总结太棒了,对另一个人来说太棒了。
猜你喜欢
  • 2013-03-04
  • 2013-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-03
  • 1970-01-01
相关资源
最近更新 更多