gpt4 book ai didi

javascript - jQuery PHP MySQL 喜欢按钮

转载 作者:行者123 更新时间:2023-12-02 17:44:14 24 4
gpt4 key购买 nike

我想使用 PHP、MySQL 和 jQuery 创建一个点赞按钮,但似乎有错误,我不知道它在哪里,你能帮忙吗?

我有两个页面[index.php 和callback.php]

索引

$k = 1; //POST ID

$nip = 24; //USER ID

<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$(document).on('click', '.like', function(){
if($(this).attr('title')=='Like'){
$.post('callback.php',{k:$(this).attr('id'),action:'like'},function(){
$(this).text('Unlike');
$(this).attr('title','Unlike');
});
}else{
if($(this).attr('title')=='Unlike'){
$.post('callback.php',{k:$(this).attr('id'),action:'unlike'},function(){
$(this).text('Like');
$(this).attr('title','Like');
});
}
}
});
});
</script>
</head>
<body>

<?php
$query=$db->prepare("SELECT * FROM activity WHERE nip = :nip AND value = :value");
$query->execute(array(
':nip' => $meNip,
':value' => $k
)
);
$all = $query->rowCount();
if($query->rowCount()==1){
echo '<a href="#" class="like" id="'.$k.'" title="Unlike">Unlike</a> <b>'.$all.'</b>';
}else{
echo '<a href="#" class="like" id="'.$k.'" title="Like">Like</a> <b>'.$all.'</b>';
}
?>
</body>
</html>

回调

$nip= //COOKIE

$k= $_POST['k'];

$action=$_POST['action'];

if (!empty($k)) {
$checkAd=$db->prepare("SELECT * FROM ad WHERE id = :id");
$checkAd->execute(array(
':id' => $k
)
);
$checkingAd=$checkAd->fetchAll(PDO::FETCH_ASSOC);
foreach ($checkingAd as $row) {

//LIKE
if ($action=='like'){
$callback=$db->prepare("SELECT * FROM activity WHERE nip = :nip AND value = :value");
$callback->execute(array(
':nip' => $meNip,
':value' => $k
)
);
$matches=$callback->rowCount();
if($matches==0){
$callback=$db->prepare("UPDATE ad SET likes = :likes WHERE id = :id");
$callback->execute(array(
':likes' => $row['likes']+1,
':id' => $k
)
);
$callback=$db->prepare("INSERT INTO activity (nip, value) VALUES(:nip, :value)");
$callback->execute(array(
':nip' => $meNip,
':value' => $k
)
);
}
}elseif ($action=='unlike'){ //UNLIKE
$callback=$db->prepare("SELECT * FROM activity WHERE nip = :nip AND value = :value");
$callback->execute(array(
':nip' => $meNip,
':value' => $k
)
);

$matches=$callback->rowCount();
if($matches==1){
$callback=$db->prepare("UPDATE ad SET likes = :likes WHERE id = :id");
$callback->execute(array(
':likes' => $row['likes']-1,
':id' => $k
)
);
$callback=$db->prepare("DELETE FROM activity WHERE nip = :nip AND value = :value");
$callback->execute(array(
':nip' => $meNip,
':value' => $k
)
);
}
}
}
}
?>

我测试了callback.php文件,(使用GET的地址栏)它工作正常,你能检查一下INDEX吗,我想,我错过了一些东西,一个点?

感谢您的帮助

最佳答案

您在 $.post 中对 $(this) 的引用不正确。您可能认为 $(this) 将是 .like 元素,但事实并非如此。 $.post 中的 this 会返回类似的内容:

Object { readyState=1, getResponseHeader=function(), getAllResponseHeaders=function(), more...}
Object { url="callback.php", type="POST", isLocal=false, more...}

下面的代码应相应地更改文本。

<script type="text/javascript">
$(document).ready(function(){
$(document).on('click', '.like', function(){
var $this = $(this);
var likes_count = $('.likes_count');
if($(this).attr('title')=='Like'){
$.post('callback.php',{k:$(this).attr('id'),action:'like'},function(){
$this.text('Unlike');
$this.attr('title','Unlike');
var likes = parseInt(likes_count.text())+1;
likes_count.text(likes);
});
}else{
if($(this).attr('title')=='Unlike'){
$.post('callback.php',{k:$(this).attr('id'),action:'unlike'},function(){
$this.text('Like');
$this.attr('title','Like');
var likes = parseInt(likes_count.text())-1;
likes_count.text(likes);
});
}
}
});
});
</script>

关于javascript - jQuery PHP MySQL 喜欢按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21909576/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com