选择提交的表单的id放入jquery变量

时间:2011-03-08 07:13:23

标签: php mysql ajax jquery

我正在制作一个笑话网站。每个笑话都存储在mysql db中的记录中。将笑话放在页面上时,会有一个带class=votebutton的投票按钮。当有人点击这个时,我想通过jquery的ajax函数将表单的id和用户的IP地址发送到我的投票处理.php文件。我有两个问题: 1.使用$(".votebutton").click()作为选择器来运行此功能是否正确? 2.如何选择要提交的表单的id以在jquery函数中构造id变量?

 $(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个表格(每个笑话一个)......

非常感谢你的帮助...

4 个答案:

答案 0 :(得分:1)

  

使用是否正确   $(“。votebutton”)。click()as   选择

  

如何选择表单的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'];

答案 1 :(得分:1)

  1. 最好使用'submit'作为事件 - 这样您就可以使用tab并返回导航到表单元素。您将提交处理程序附加到表单,而不是按钮。

  2. 如果你使用'submit',那么'this'就已经是表单了,所以你可以$(this).attr('id')

答案 2 :(得分:1)

使用.votebutton进行点击是正确的。

当你点击按钮时,只需访问父母的id,所以$(this).parent()。attr('id')

答案 3 :(得分:0)

  1. 是的,应该可以正常工作。它将所有元素与该类绑定
  2. jQuery(this).attr('id')应该为您提供元素的ID。
  3. 虽然不确定IP。