2012-10-19 35 views
0

我目前正在使用HTML製表的記錄,記錄來自數據庫和該表的末尾部分,我有一些操作,編輯刪除SHOW,我已經完成了編輯,這與我的DELETE不同,我的DELETE操作是使用ajax完成的,但問題是我無法正確獲取每個按鈕的值,其中包含來自數據庫。如何使用jQuery/Javascript/PHP刪除HTML表中的記錄

這是表的一部分,其中的刪除按鈕位於:

<td width="61"><button id="delete" value="<?php echo "$arr[0]"; ?>">Delete</button></td> 

這是jQuery的部分

$("#delete").click(function(){ 
    alert($("#delete").val()); <-- CAN"T GET THE CORRECT ID 
    //AJAX PART HERE 
}) 

的問題是,我不能得到正確的價值我按下的按鈕,我如何做到這一點,任何建議,非常感謝。

這是表的整個視圖,

enter image description here

+0

應該'「$ arr [0]」'包含數據庫的ID? –

回答

6

沒有測試,但我相信這個問題是,你試圖讓所有的比賽的val()#delete,這可能是所有的刪除按鈕(我不知道,沒有看到你生成的HTML )。

你應該實際使用的一類delete.delete而不是id選擇,作爲id,根據HTML規範應該是指一種獨特的元素。

$("#delete").click(function(){ 
    // note the use of `this` to refer to clicked object, rather than all delete buttons 
    alert($(this).val()); 
    //AJAX PART HERE 
}) 
+0

ohhh劃傷最後的評論,改變ID爲類的作品很好,是的,我認爲jquery的選擇器選擇了與該ID的所有按鈕和類似於你說的東西:D tnx人 – lemoncodes

+1

所以不要使用' ID'爲幾個元素,使用'class',看到更新! –

0

首先,在編寫服務器端刪除的方法,像delete.php,返回狀態,像「錯誤」和「成功」

$("#delete").click(function(){ 
    var id = $(this).attr('id'); 
    //AJAX PART HERE 
    $.get('delete.php?id=xxx',function(status){ 
     if (status == 'success') $(this).parent().remove(); 
    } 
}) 
0

只要使用jQuery的「本」,以中訪問按鈕功能...

eg

alert($(this).val()); 
+0

有點緩慢的迴應...比利說:-) – pswillies

0

按鈕的價值是什麼顯示在它的文本替換

alert($("#delete").val()); <-- CAN"T GET THE CORRECT ID 

,但不會讓你的表的ID。此外,由於有幾個刪除按鈕,請使用類而不是id。

更改您的HTML代碼,這樣的事情,用所謂的「DB-ID」的自定義屬性,通過它,你會發現要刪除的記錄:

<input class="delete" db-id="<?=$db-id?>" value="Delete"/> 

然後,你的JS代碼可以被調整像這樣:

$(".delete").click(function(){ 
    var dbid = $(this).attr('db-id'); 
    $.ajax({ 
     type: 'POST', 
     url: 'script-url/here.php' 
     data: 'id=' + dbid, 
     success: function(feedback){ 
      if(success==true) $('tr[db-id="' + dbid + '"]').delete 
     } 
    }).error(){ 
     alert('Something went horribly wrong!'); 
    }; 
}) 

注意的是,在成功的功能,你甚至可以使與數據的行消失使用.delete()

另外請注意,任何m個好的用戶將能夠在瀏覽器中編輯按鈕的db-id,因此請在php腳本中採取所有必要的預防措施和驗證!

0

試試這個:

$("button[id=delete]").click(function(){ 
     $(this).closest('tr').remove(); // Delete row 
     alert($(this).attr('value')); // ID 
    }); 

按鈕[ID =刪除] - 因爲你有相同的ID許多按鈕,更好地利用CSS類...

0

確定這裏是您的解決方案:

1)insted id =「delete」使用類。像這樣:

<td width="61"><button class="delete" value="<?php echo "$arr[0]"; ?>">Delete</button></td> 

2)你的jQuery應該是:

$(".delete").click(function(){ 
    alert($(this).val()); <-- CAN"T GET THE CORRECT ID 
    //AJAX PART HERE 
}) 

這應該提醒propper ID,我proposee這個mehoded進行編輯,並顯示訴權....