【发布时间】:2011-06-26 07:17:13
【问题描述】:
我有一个投票系统,它将点击项目的 id 发送到 PHP 脚本,PHP 更新数据库并通过 JSON 编码数组回显新的投票计数。
这是 jQuery:
$(".vote_up").click(function(){
var id = this.id;
var vote = $(this).attr("class");
var data = "id=" + id + "&vote=" + vote;
$.ajax
({
type: "POST",
url: "vote.php",
data: data,
cache: false,
success: function(data)
{
for(var x in data) {
$(".votes_up").find(id).html(data[x].vote_up);
$(".votes_down").find(id).html(data[x].vote_down);
}
}
});
});
所以当我首先构建项目时,我会在数据库中获取记录 ID 并将其设置为项目 ID。所以我想做的是引用被点击的确切项目并将它的 HTML 设置为从 PHP 返回的数据。我已经检查了 Firebug,我得到了正确的数据,但票数没有改变。有什么想法吗?
这是供参考的PHP:
$query = "SELECT vote_up, vote_down FROM posts WHERE id = '".$id."'";
$result1 = mysql_query($query);
$output = Array();
while ($row = mysql_fetch_array($result1)){
$output[] = Array(
"vote_up" => $row['vote_up'],
"vote_down" => $row['vote_down'],
);
}
echo json_encode($output);
【问题讨论】:
-
html 是什么样的?
-
它全部由 PHP 构建,但遵循
The Item
-
假设您对 $(".votes_down").click 有相同的功能?
-
你是说你想让
success:回调中的this成为被点击的元素吗? -
是的,所以无论点击什么,我都想将 .html() 设置为 PHP 返回的任何内容