好的,首先,我是SQL和PHP的新手。我有一个数据库设置,我能够在HTML表单中输入由3个字段组成的条目,并在我的网站上显示这些条目。但是,我需要一个会出现在每个帖子上的“喜欢按钮”,这个想法就像+1按钮只会为该特定帖子计数一个计数器。我一直在搜索,因为我是新手,我似乎很难找到正确的方法来做到这一点?我已经阅读了类似的问题,看起来人们正在解析?我还读过在提交的HTML表单上使用隐藏字段进行比较的内容?我无法弄清楚这方面的语法:/我不够先进,无法将想法应用到我的代码中,我来这里是为了获得有关如何获得这个'Like按钮'的帮助。
我基本上正在寻找与StackOverflow完全相同的东西,其中一个类似按钮与帖子一起创建,并且只能为所点击的特定帖子更新+1计数器。
我的网站目前包含一个admin.php(包括HTML表单)页面,一个index.php(显示数据库输出)和insert.php(用于数据库插入),我一直在尝试使用各种想法insert2.php与insert.php结合使用。
非常感谢任何帮助或评论。我已经在这个网站上找到了很多很棒的帮助。如果我需要发布任何代码,以便让自己更容易或更轻松,请告诉我。大声笑。
谢谢大家。
答案 0 :(得分:0)
首先为每个用户链接一个表,其中包含字段user_id,likes,post_id
现在你需要做的就是如果用户喜欢某个帖子填充这个表格, 喜欢字段1,而不喜欢字段0
在循环视图中添加此代码
<a href="#" class="likeUserPost" id="like<?php echo $userpost['updates_id']; ?>" updateId="<?php echo $userpost['updates_id']; ?>">
<span class="glyphicon glyphicon-plus-sign" ></span>
<?php if($userpost['islike']=='yes'){echo "UnVote";}else{echo "Vote";} ?></a>
jQuery的:
<script type="text/javascript">
$(document).on('click','.likeUserPost',function(e){
e.preventDefault();
var base_url='<?php echo base_url();?>';
var user_id ='<?php echo $current_user_id; ?>';
var updates_id=$(this).attr('updateId');
$.ajax({
type:'post',
url:base_url+'home_content/updateLike',
data:{user_id:user_id,update_id:updates_id},
success:function(data){
var res= JSON.parse(data);
if(res.likecode=="unlike"){
var totalLike=res.totalcount;
$('#countID'+updates_id+'').html(totalLike);
$('#vote'+updates_id+'').html('Vote');
}
else{
$('#countID'+updates_id+'').html(res.totalcount);
$('#vote'+updates_id+'').html('UnVote');
}
}
});
});
</script>
Php Code我在我的模型中使用codeigniter
function updateLike($user_id,$update_id){
// print_r($update_id);exit;
$sql=$this->db->query("SELECT * from updates_like where user_id='$user_id' AND updates_id='$update_id'");
$data=$sql->row();
if(empty($data)){
$date=date('Y-m-d H:i:s');
$likeData = array('totallike' =>'1',
'created_date'=>$date,
'user_id'=>$user_id,
'updates_id'=>$update_id
);
$this->db->insert('updates_like',$likeData);
$returnData = array('likecode' =>'like' , 'totalcount'=>$this->totalLikeCount($update_id));
}
else{
$like=$data->totallike;
$newLike= 1-$like;
$this->db->set('totallike',$newLike);
$this->db->where('user_id',$user_id);
$this->db->where('updates_id',$update_id);
$this->db->update('updates_like');
if($newLike==0){
$returnData = array('likecode' =>'unlike' , 'totalcount'=>$this->totalLikeCount($update_id));
}
else{
$returnData = array('likecode' =>'like' , 'totalcount'=>$this->totalLikeCount($update_id));
}
}
return $returnData;
}
这是我的控制器
public function updateLike(){
$user_id=$this->current_user_id;
$update_id=$this->input->post('update_id');
$a=$this->home_content_model->updateLike($user_id,$update_id);
print_r(json_encode($a));
}