2017-05-22 81 views
0

夥計們我有一個按鈕,點擊發布的查詢從數據庫中刪除值。現在,當我點擊按鈕時,它將刪除數據庫中的所有記錄,但我想要的是無論用戶點擊了哪個ID,只刪除該ID的記錄。我需要動態設置一個按鈕的ID,請看下面的例子。還建議我有任何其他替代方案來實現這一點。任何幫助將不勝感激。jquery,js jsp。 onclick刪除特定行

//just for eg 
 
//this is my id which im getting from DB 
 
document.getElementsByClassName(".sui").value=$(this).attr("id"); [101,102---] 
 

 
//this is my button 
 
<button type="button" class="sukuti" >click me</button> 
 

 
//myquestion is how do I set it of button to be ($(this).attr("id"))

+0

您是否正在對後端進行Ajax POST調用,指定與單擊按鈕關聯的ID?我想我正試圖瞭解你如何在UI中附加ID值。 –

+0

這就是問題所在,我不知道如何爲按鈕指定特定的ID。 – david

+0

您是否正在使用與每行關聯的按鈕生成數據行(對應於數據庫中的記錄)?我認爲你使用JSTL和JSP? –

回答

0

如果我的理解沒錯,你試圖讀取最後單擊行的ID,併發出一個查詢到數據庫服務器。

我假設你有一個表,併爲每一行刪除行的按鈕。

首先創建接受行ID並從例如刪除相應行的後端。 MySQL的。這可以使用PHP進行。但是,這是另一個問題..

"DELETE from MyTable WHERE id=" + id 

然後在表格元素(我不知道你是如何生成的動態表,但我認爲你是從後端獲取JSON這樣做)放置一個按鈕,並設置onclick event to

myFunction(dbArray[id]) 
//so the input would look like 
//<button onclick="myFunction(102)">Delete</button> 

此處的目標是在我們的onclick函數中使用id參數生成button。 一個簡單的函數可能是這樣的:

function myFunction(myid){ 
 
    //something to do with ID, maybe an AJAX query 
 
    //explaining AJAX to the backend in this scenario 
 
    $.ajax({ 
 
    type: "POST", //you might use GET aswell 
 
    data: {'id': myid}, 
 
    url: 'deleterow.php', 
 
    cache: false, 
 
    success: function(msg) { 
 
    //do something with received value 
 
    //this is the raw output of your backend service aswell 
 
    //basically, what you see on the screen :) 
 
    console.log("Succesfully deleted id:" + myid + ". msg:" + msg); 
 
    } 
 
    }); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

0

根據您在您的評論所提供的額外信息,點擊一個數據行會彈出一個顯示完整記錄,並有利於形式機制(按鈕)刪除該記錄。但點擊按鈕會刪除所有記錄,而不僅僅是一個特定的記錄。

  • 不要設計一個服務器端方法來刪除所有的記錄,除非你想擁有該選項。即使你想這樣做,使用不同URL的單獨方法刪除所有記錄也更安全。
  • 由於您使用POST,可以使用隱藏表單輸入<input type="hidden" name="id" value="101" />或按鈕本身中的HTML5樣式數據屬性,可以使用它將請求提交給服務器。查看這個SO thread的相關想法。