2011-03-08 35 views
2

我在做一個笑話網站。每個笑話都存儲在mysql數據庫中的記錄中。當笑話放在一個頁面上時,有一個表決按鈕class=votebutton。當有人點擊這個時,我希望表單的id和用戶的IP地址通過jQuery的ajax函數發送到我的投票處理.php文件中。我有兩個問題: 1.使用$(".votebutton").click()作爲運行此功能的選擇器是否正確? 2.我如何選擇被提交的表格的id在jquery函數中構造id變量?選擇要提交的表單的ID放在jQuery變量中

$(function() { 
     $(".votebutton").click(function() { 
     var id = //I'd like this to be the id of the form submitted 
     var ip = //I'd like this to be the ip of the user 
     var dataString = 'id='+ id = '&ip=' + ip; 
     //alert (dataString);return false; 
     $.ajax({ 
     type: "POST", 
     url: "bin/vote.php", 
     data: dataString, 
     success: function() { 
      //something to do on success 
     } 
     }); 
     return false; 
    }); 
}); 

此外,還有一個問題,如果你們有一分鐘 - 什麼是獲取訪問者IP的好方法。我認爲會有關於這些形式每頁(每個笑話)10 ...

非常感謝您的幫助...

+0

單獨的表格父所以$(本).parent()。ATTR(「ID」)的ID .. – emaillenin 2011-03-08 07:21:47

回答

1

是否有權使用 $( 「votebutton」)。點擊()作爲 選擇

如何選擇形式 的id正在提交

通常的做法是將ID存儲爲元素ID的一部分,例如:

<button id="vote_54321" value="Vote!" class="votebutton" /> 

比,在你的功能,你可以得到ID:

var id = $(this).attr('id').split('_')[1]; 

有沒有辦法讓從JavaScript客戶端IP,你應該得到它在你的服務器端的PHP代碼:

$userip = $_SERVER['REMOTE_ADDR']; 
0
  1. 是應該很好地工作。它將綁定與該類別的所有元素
  2. jQuery(this).attr('id')應該爲您提供元素的ID。

雖然不知道IP。

1
  1. 這是更好地使用「提交」作爲事件 - 這種方式,您可以使用標籤和返回導航到表單元素。您將提交處理程序附加到窗體上,而不是按鈕。

  2. 如果使用「提交」,那麼「這個」將已經是形式,所以你可以做$(this).attr('id')

1

它的正確使用.votebutton的點擊。

當你點擊按鈕即可訪問需要對每個投票按鈕