我正处于我的第一个AJAX项目的最后一站。我有一个有评论的社交网络。我只是添加一个拇指图标,按下时,通过JQUERY将注释的ID发送到背景php页面,该页面是SUPPOSED以存储注释的id以及它被按下的记录(增量)。在那之后,我需要它将该记录发送回拇指图标所在的页面,然后告诉该页面拇指已经被击中并在指定区域增加计数器。
在thumb_increment
表中我有:
id
自动递增和
comment_id
这是正在被投票的评论的ID。
我想知道是否应该添加另一列来保存upvotes的数量,或者只是在comment_id
列中跟踪。我对那里的逻辑感到有点困惑。
到目前为止,我可以点击拇指并让它从我的其他页面发送ID并通过$_POST
获取ID。这是代码:
<?php
// 1. CHECK AND SEE IF THE "$comment_id" IS VALID. I AM GOING TO RETREIVE THE VALUE OF THE $_POST BEING SENT FROM THE PHP PAGE THAT IS SENDING THE REQUEST
/* QUERY TO CHECK $_POST DATA WITH: */
/* this is grabbing id that jquery sent over via post */
if(isset($_POST['comment_id'])) {
/* making a variable out of the grabbed id */
$retreived_comment_id = ($_POST['comment_id']);
/* this query is bring to frutation the exact id of the comment */
$query = "SELECT * FROM `CysticAirwaves` WHERE `id` = '".$retreived_comment_id."' && `status` = 'active'";
$request = mysql_query($query,$connection);
if($result = mysql_fetch_array($request)) {
/* insert the comment into the increment table */
$query = "INSERT INTO `thumb_increment` (
`comment_id`
) VALUES (
'" . $retreived_comment_id . "'
)";
mysql_query($query,$connection);
/* increment the vote in the db */
}
}
?>
总结一下我还剩下的事情:
我需要递增并将注释存储在我的数据库中,将其放入变量中,然后将其发送回带有拇指图标的页面,并将该变量固定在计数器的增量上
提前致谢。
答案 0 :(得分:0)
修改
关于数据库部分,根据您的评论......
我只需要upvote的规范化数据库包含:
comment_id, user_who_voted_id, timestamp
将来如果你想拥有downvote的概念,比如stackoverflow,你可能需要添加另一列。在前一个更简单的情况下,为了获得计数,你只需要做一些事情:
SELECT count(*) FROM thumb_increment WHERE comment_id = ?
旧答案
当您修改状态时,不会将$ .get用于此类内容。我可能会用一个帖子。重写他的榜样......
http://api.jquery.com/jQuery.post/
http://api.jquery.com/serialize/
// Assuming html that looks something like the following
<form id='comment_details_123123'>
<input type='hidden' value='123123' name='comment_id' />
<div class='thumb'><img src='thumb.jpg' /></div>
<div class='thumb_counter'>3</div>
</form>
$('.thumb').click(function(){
var comment_form = $(this).parent('form');
$.post('comment.php', comment_form.serialize(), function(response) {
comment_form.find('.thumb_counter').html(response.new_count);
});
});