php – jQuery AJAX在成功函数中引用$(this)
发布时间:2020-12-13 22:40:51 所属栏目:PHP教程 来源:网络整理
导读:我有一个投票系统,它将点击的项目的ID发送到 PHP脚本,PHP更新数据库并通过JSON编码的数组回送新的投票计数. 这是jQuery: $(".vote_up").click(function(){ var id = this.id; var vote = $(this).attr("class"); var data = "id=" + id + "vote=" + vote; $
我有一个投票系统,它将点击的项目的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);
如果你只是想要成功:回调引用被点击的元素,只需为AJAX请求设置context:属性.
$.ajax({ context: this,// set the context of the callbacks type: "POST",success: function(data) { // now "this" refers to the element that was clicked } 您可以通过执行更通用的操作来测试它,例如: $(this).html("yep,it works"); …然后,如果有效,请考虑在循环中的同一元素上执行.html()实际上没有意义,因为每次.html()都会覆盖整个内容. 如果要从循环中追加数据,请使用.append(): for(var x in data) { $(this).append(data[x].vote_up); $(this).append(data[x].vote_down); } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |