感谢阅读。
我正在努力改进,所以我正在做一个改进的示例项目。我做了一个简单的。投票制度。我有由php显示的内容的数量各有上下投票按钮。顺便说一句,我使用twitter bootstrap。
这是html代码:
<html>
<button type="submit" class="btn btn-mini upvote" id="'.$data['ContentID'].'">
<i class="icon-arrow-up"></i>
</button>
<span id="voteresponse">'.$data['VoteSum'].'</span>
<button type="submit" class="btn btn-mini downvote" id="'.$data['ContentID'].'">
<i class="icon-arrow-down"></i>
</button>
</html>
问题是当我舔了按钮class="upvote"
所有其他按钮做同样的事情。因为php填充的数据有很多。
这是我的javascript。
<script>
jQuery(document).ready(function($){
$('.upvote').click( function(event) {
event.preventDefault();
$("#voteresponse").html('');
var voteID = $(".upvote").first().attr("id");
$.ajax({
url: "/ajax.php?Page=votetitle",
type: "post",
dataType: "json",
data: {id : voteID},
success: function(data, textStatus){
if(data.success == 'true'){
$('#voteresponse').html(data.message);
return true;
}else{
$('#voteresponse').popover({
title: 'Hata!',
content: data.message
});
}
},
error:function(){
$('#voteresponse').popover({
title: 'error!',
content: 'Server error'
});
}
});
});
});
</script>
和php代码只是通常的数据库请求。
<?php
if ( $_SESSION['UserID'] <1 )
die( print_r(json_encode(array('success'=>'false', 'message'=>'error for user!'))) );
print_r(json_encode(array('success'=>'true', 'message'=>$_POST['id'])))
?>
您可以看到操作here。如果你点击其中一个,所有其他箭头做同样的事情。这种方法对吗?
感谢。最好的问候
答案 0 :(得分:3)
当您点击其中任何一个时,只有第一个“响应”...这可能是因为var voteID = $(".upvote").first().attr("id");
投票ID应该类似于$(this).attr('id');
。
请注意,您需要识别单击了哪个按钮,您可以使用例如$(this).parent()
...这将使您获得所单击按钮(div media isotope-item
)的上层DOM级别在那里你只能修改那个div的内容。
答案 1 :(得分:3)
尝试更改
var voteID = $(".upvote").first().attr("id");
到这个
var voteID = $(this).first().attr("id");
或
var voteID = $(this).attr("id");