2012-07-05 59 views
2

我的問題更多地面向方法,而不是編程或錯誤。ColdFusion - 查詢數據和CRUD操作表的方法

我有一個查詢運行並收集一組數據。然後我想使用該查詢的返回值在頁面上構建一個列出所有值的表格。隨着,我需要有例如每個值的一些行動:

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

凡編輯和刪除釦子。所以編輯按鈕,我已與onClick javascript,其中我重定向到另一個頁面,但刪除按鈕,我需要做三件事:

  1. 提示用戶,好嗎刪除?味精(使用的是(回覆確認的JavaScript ...)。
  2. 執行查詢,刪除
  3. 刷新頁面(個體經營)

是否有一個最好的方法模型呢?是不是更容易調用兩個內嵌的JavaScript命令?使用JavaScript函數?也許ColdFusion的功能?

任何指針會有幫助的!謝謝。

回答

1

我覺得最簡單的刪除方法就是這樣。我假設你使用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> 
+0

如果我刷新頁面,這會立即刪除我的記錄。任何想法我做錯了什麼? – ErikMes 2014-10-10 08:05:06

2

我想你靠近你在找什麼。

我會做刪除的方式是在JS中確認,然後將請求發送到執行刪除過程的另一個頁面,然後將用戶發送回原始頁面(讓您刷新)。

這將是一條簡單的路線,您也可以使用AJAX來調用您的流程頁面並在後臺執行更改。然後,您必須執行JS刷新或手動處理頁面上的更改。

+0

是的,我會說這是很簡單的。如果你還沒有一個AJAX框架或者沒有使用內置的CF AJAX東西,那麼你就完全放棄了,並使用重定向方法。 – jboursiquot 2012-07-05 14:37:19

0

最簡單快捷的方法是隻是有基於用戶的選擇返回真/假的onclick處理

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

當然也有更優雅的方式來做到這一點,但上述是基礎和工作。

+0

我沒有看到Evik的回答......更完整,並做同樣的事情。 – emeier 2012-07-06 16:17:49

0

這是我用:

!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);