我在Ajax上为用户评论创建了一个简单的投票系统(+和 - )。一页有50条发表评论,您可以为每个“加号”或“减号”投票。这些数据通过PHP脚本发送到数据库。但是,如果用户投票,则PHP脚本被调用50次 - 它在Chrome开发人员工具中可见。有错误 - 比预期更多的价值。这是我的代码(两个DIV按钮和脚本)。如何防止多个加载PHP脚本调用JS脚本?
请告诉我如何将代码更改为脚本(up_vote.php或down_vote.php)只调用一次。
<script type="text/javascript" src="raitings/jquery.js"></script>
<script type="text/javascript">$(function() {$(".vote").click(function() {
var id = $(this).attr("id");
var name = $(this).attr("name");
var dataString = 'id='+ id ;
var parent = $(this);
if(name=='down')
{
$(this).fadeIn(200).html('<img src="raitings/dot.gif" align="absmiddle">');
$.ajax({type: "POST", url: "raitings/down_vote.php", data: dataString, dataType : "html", cache: false, success: function(html)
{ parent.html(html);}
});
}
else
{
$(this).fadeIn(200).html('<img src="raitings/dot.gif" align="absmiddle">');
$.ajax({type: "POST", url: "raitings/up_vote.php", data: dataString, dataType : "html", cache: false, success: function(html)
{ parent.html(html);
} });
}
return false;
});
});
</script>
//php code below;
echo "<div class=\"box1\"><div class=\"up\"><a href=\"#\" class=\"vote\" title=\"+ 1\" alt=\"+ 1\" id=".$row["id"]." name=\"up\">".$up."</a></div>"
."<div class=\"down\"><a href=\"#\" class=\"vote\" title=\"- 1\" alt=\"- 1\" id=".$row["id"]." name=\"down\">".$down."</a></div></div>\n";
不能重现:http://jsfiddle.net/jxUKN/有没有其他的js代码,你正在省略? – Mahn
或者你是否通过ajax加载每个人的评论? – Mahn
我通过PHP加载所有评论。id同样的两个按钮,但不同的所有评论 – Astraport