我使用以下代码为我的产品页面制作了一个“赞”按钮:
<?php
if('POST' == $_SERVER['REQUEST_METHOD']) {
$sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
$result=mysql_query($sql);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
<input type = "submit" value = "like"/>
</form>
就像一个小问题的魅力激励一样,每次访问页面都会注册“喜欢”。
有人可以帮助解释我需要更新/添加的内容,以便只在提交实际表单时注册新的“赞”吗?
由于 丹
答案 0 :(得分:8)
一个更好的解决方案,而不是提交页面和整个页面重新加载将是一个AJAX请求,这就是Facebook'喜欢'工作的方式。
这可以使用jQuery JavaScript库来实现。
总体概要是: -
1)点击按钮
2)发送AJAX请求
3)更新HTML以显示按钮已被点击并阻止重新点击按钮。
答案 1 :(得分:4)
<?php
if ($_POST['like']){
$sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
$result=mysql_query($sql);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
<input type = "submit" name="like" value = "like"/>
</form>
答案 2 :(得分:3)
<?php
if($_POST['like']) {
$sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
$result=mysql_query($sql);
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="POST">
<input type = "submit" value = "like" name='like'/>
</form>
这应该有用; - )
答案 3 :(得分:1)
首先 - 在你的SQL中你有:
`product_id` = '1'
不要将id值用作字符串:
`product_id` = 1
关于您的问题:
添加另一个条件:
if ('POST' == $_SERVER['REQUEST_METHOD']) {
if ( !empty($_POST['submitType']) && ( $_POST['submitType'] == 'like' ) ) {
$sql = "UPDATE table set `likes` = `likes`+1 where `product_id` = '1'";
$result=mysql_query($sql);
}
}
并在html中:
<input type = "submit" name="submitType" value = "like"/>