2012-03-01 74 views
1

我是新的jQuery和ajax,但我剛學會如何使用jQuery ajax發佈表單並保存它,現在我有一個表中的記錄列表我的模板,有些事情是這樣的:運行AJAX刪除記錄時,單擊錨點

field1 field2 field3 <a href="#" id="rec1">del</a> 
field1 field2 field3 <a href="#" id="rec2">del</a> 
field1 field2 field3 <a href="#" id="rec2">del</a> 
... 

現在我想刪除一個記錄,當點擊它的錨標記。

編輯: 這些記錄都已經使用AJAX被插入到數據庫中,並立即在這個格式在表中被證明,現在我要通過AJAX點擊其anchor刪除每個記錄。

這樣的:

field1 field2 field3 <a href="#" id="rec2" onClick="f({{id}})">del</a> 

我該怎麼辦呢?

+1

只是出於好奇:你是否將這些記錄保存在數據庫中?如果是這樣,你需要一個django視圖來刪除記錄,並使用jquery – 2012-03-01 18:35:41

+0

@Samuele來調用它:我編輯了我的問題。 – 2012-03-01 18:44:21

回答

1

這會是這樣的onClick = 「$(本).closest( 'TR')。remove()方法」

假設其實際的表像你說的是,你有HTML這樣

<table><tr><td/><td/></tr></table> 
+0

我將使用ajax將其從數據庫中刪除!您的建議可能是從數據庫中刪除記錄後的第二個問題。 – 2012-03-01 18:39:31

3

我會盡力

第一:你需要有一個Django視圖中刪除所選項目

:定義您的網址文件中的模式一個指向這一觀點,說

(r'^delete/(\d{4})/$', 'delete_item'), 

那麼你的JavaScript應該是這樣的:

function deleteAjax(item_id){ 
$.ajax({ 
    url: "delete/"+ item_id +"/", 
    data: <the id of the record you want to delete>, 
    success: function(){ 
     //here you do the processing needed to remove the row from the html; 
    } 
}); 
} 

你的HTML則必須改變:

<a id="{{id}}" onclick="deleteAjax({{id}}); return false;"> delete item </a> 

click事件將觸發javascript(deleteAjax)並通過發送它刪除項目的ID來調用正確的(django)視圖

只是幾件事情需要注意:

  • Django的觀點必須處理正確的反應,因爲這將決定哪些回調將在其執行結束時被調用(它是AJAX部分「成功:功能...「,你也可以有一個失敗:功能)

  • 在成功功能,你必須記住刪除刪除項目相應的錶行(如果刪除成功),或者你必須通知(如果失敗)

last:我現在不確定你在ajax函數中發送的那個「data」參數,因爲被刪除項的id綁定到了url。不過,你可以用它來發送你最終需要的東西

+0

如何在我的視圖中使用ajax訪問發送的數據? – 2012-03-01 18:48:57

0

@Samuele它的工作!:d

TNX,現在聽起來像我的成功功能不起作用:

function f(id) { 
       $.ajax({ 
        url: "/meeting/delParticipant/"+id+"/", 
        type: "POST", 
        data: {'id':id}, 
        success: function(res){ 
         alert ('success'); 
         $(this).closest('tr').remove(); 
        } 
       }); 
      }; 

我要刪除表中的行,我用警惕來測試它,我敢肯定,成功不運行!