2011-07-26 55 views
1

我有一個列表,填充從MySQL數據庫中的行,我想標記數據庫中的這些行單擊鏈接時,使用jQuery .click和.ajax通過觸發器PHP腳本並傳入數據庫主鍵ID。傳遞參數到jQuery .click

我到目前爲止這jQuery代碼:

$(document).ready(function() { 
    $("#clickme").click(function() { 
     $.post("removeDNFromBulk.php"); 
    ); 
}); 

但我需要一個ID,以removeDNFromBulk.php傳遞,無論是作爲POST或GET,無論是西服。

我有這樣的HTML觸發jQuery代碼

<a id="clickme" href="javascript:void(0);">click me</a> 

很顯然,我不傳遞任何ID對jQuery,但就是這樣的一部分,我不能左右我的頭。如何做到這一點?

+0

一個小評論。 GET應該不會用於將要改變模型的操作,你應該真的限制它到POST操作。這樣,抓取頁面的任何東西都不會突然刪除。 –

+0

@John Munsch:get/post ...無論哪種方式,在從數據庫中刪除之前都應該進行某種形式的檢查。不只是crwaling的頁面擔心:) – PeeHaa

+0

頁面不會被抓取,因爲我將使用robots.txt和數據庫行上的標誌將不會被設置,除非有會話數據驗證,只能使用有效用戶/通行證。 但是永遠不會,你提出一個好點 – Ste

回答

2

我會做這樣的事情:

,因爲如果我明白你的問題正確的有幾個clickme環節我會用一個類。 Id應該始終是唯一的。

而且我已刪除了那個醜陋的javascript:void(0)啄:)

而且我已經添加了ID到鏈路的數據屬性。

<a class="clickme" href="#" data-id="{the id}">click me</a> 

您可以像下面那樣向帖子添加數據。

$(document).ready(function() { 
    $('.clickme').click(function() { 
     var del_id = $(this).data('id'); 
     $.post("removeDNFromBulk.php", { id: del_id }); 

     return false; 
    }); 
}); 

返回FALSE禁止這項活動冒泡DOM和點擊的默認行爲。

編輯

你應該準備好包裝,以確保該元素正試圖訪問它之前加載文檔中的代碼。

+0

這是行不通的。 我在jQuery中添加了一個alert()調用,當我按下鏈接時,也沒有觸發PHP腳本啓動。 Firefox錯誤控制檯報告沒有錯誤:S – Ste

+0

@Ste:歡迎來到SO! :) – PeeHaa

+0

@Ste:查看我編輯過的帖子 – PeeHaa