我正在制作一个笑话网站。每个笑话都存储在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个表格(每个笑话一个)......
非常感谢你的帮助...
答案 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)
最好使用'submit'作为事件 - 这样您就可以使用tab并返回导航到表单元素。您将提交处理程序附加到表单,而不是按钮。
如果你使用'submit',那么'this'就已经是表单了,所以你可以$(this).attr('id')
答案 2 :(得分:1)
使用.votebutton进行点击是正确的。
当你点击按钮时,只需访问父母的id,所以$(this).parent()。attr('id')
答案 3 :(得分:0)
jQuery(this).attr('id')
应该为您提供元素的ID。虽然不确定IP。