【问题标题】:ColdFusion - approach for table of query data and CRUD actionsColdFusion - 查询数据表和 CRUD 操作的方法
【发布时间】:2012-07-05 23:11:56
【问题描述】:

我的问题更多是针对方法而不是编程或错误。

我有一个运行并收集一组数据的查询。然后,我想使用该查询的返回值在列出所有值的页面上构建一个表。除此之外,我还需要对每个值进行一些操作,例如:

my_val (edit) (delete)
my_cal (edit) (delete)

编辑和删除是按钮。所以我使用 onClick javascript 的编辑按钮,我被重定向到另一个页面,但删除按钮我需要它来做三件事:

  1. 提示用户,可以删除吗?味精(为此使用 javascript(返回确认...)。
  2. 执行查询删除
  3. 刷新页面(自我)

有没有最好的方法模型?调用两个内联 javascript 命令更容易吗?使用javascript函数?也许是 ColdFusion 功能?

任何指针都会有所帮助!谢谢。

【问题讨论】:

    标签: javascript coldfusion crud cfquery cfoutput


    【解决方案1】:

    我认为你接近你正在寻找的东西。

    我进行删除的方式是在 JS 中确认,然后将请求发送到执行删除过程的另一个页面,然后将您的用户发送回您的原始页面(让您刷新)。

    这将是简单的路线,您也可以使用 AJAX 调用您的流程页面并在后台进行更改。然后你要么必须进行 JS 刷新,要么手动处理页面上的更改。

    【讨论】:

    • 是的,我想说这很简单。如果你还没有 AJAX 框架或者没有使用内置的 CF AJAX 东西,那就完全放弃它并使用重定向方法。
    【解决方案2】:

    我认为删除的最简单方法是这样的。我确实假设您使用 jQuery 或其他一些库或获取 JavaScript 的东西。

    YourPage.cfm
    <cfif structKeyExists(URL, "Action") and URL.Action eq "delete">
        <cfququery>
           // delete the item using the id provided
        </cfquery>
    </cfif>
    
    <cfquery name="GetFresh">
        // get fresh info
    </cfquery>
    
    <cfloop query="GetFresh">
        Something <span class='DeleteLink' data-someid='#SomeID#'>delete</span> <br>
    </cfloop>
    
    <script type='text/javascript'>
    
        $DeleteLinks = $("span.DeleteLink");
    
        $DeleteLink.click(function() {
            var Confirm = confirm('Are you sure you want to delete?');
            if (Confirm == true) {
               var SomeID = $(this).data("someid");
               var URL = "YourPage.cfm?Action=delete&SomeID=" + SomeID;
               window.location = URL;
            }
        });
    </script>
    

    【讨论】:

    • 如果我刷新页面,这将立即删除我的记录。知道我做错了什么吗?
    【解决方案3】:

    最简单最快捷的方法是只使用一个 onclick 处理程序,该处理程序根据用户的选择返回 true/false

        <a href="delete.cfm?id=1" onclick="return confirm('Are you sure you want to delete his?')">Delete</a> 
    

    当然还有更优雅的方法可以做到这一点,但以上是基本的并且有效。

    【讨论】:

    • 我没有看到 Evik 的回答...更完整并且做同样的事情。
    【解决方案4】:

    这是我用的:

    !function($, window, undefined) {
        var document = window.document;
        $(document).delegate('input:submit[name="Delete"][value="Delete"]','click',function() {
            return window.confirm(this.title || 'Delete this record?');
        });
    }(jQuery, window);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 2018-01-09
      相关资源
      最近更新 更多