![](/img/trans.png)
[英]How do I make sure that my vote link gets clicked only once by a user for a particular post?
[英]How do I fix my code so that when the button is pressed it will only increment the vote count of the corresponding post?
我知道按鈕的值是選擇 id 的值,但是當我嘗試將其切換為變量時它不起作用,因此該按鈕只會在單擊時增加我的數據庫中的第一個帖子。 我的目標是讓它增加其相應帖子的投票計數。 請注意,帖子是隨機選擇的。 這是我的代碼。
<?php
$mysqli = new mysqli('localhost', 'root', '', 'phplikes');
$sql = "SELECT vote from meme_vote";
$result = $mysqli->query($sql);
$vote = $result->fetch_assoc();
if (!empty($_POST)) {
$sql1 = "UPDATE meme_vote set vote = (vote + 1) where id = ". $_POST['id'];
$result = $mysqli->query($sql1);
$result2 = $mysqli->query($sql);
$vote = $result2->fetch_assoc();
echo json_encode($vote);die();
}
$con = mysqli_connect('localhost', 'root', '', 'phplikes');
$fetchVideos = mysqli_query($con, "SELECT video_location FROM meme_vote
ORDER BY RAND()
LIMIT 1");
while($row = mysqli_fetch_assoc($fetchVideos)){
$location = $row['video_location'];
echo "<div >";
echo "<video src='".$location."' controls width='200px' height='200px' >";
echo "</div>";
echo "<div class='meme'>";
echo "<button type='button' id='press_me' value='1'>waat</button>";
echo '<p>Post 2<div id="votes">'.$vote['vote'].'</div>';
echo "</div>";
}
?>
<html>
<style>
#votess {
position: relative; top: 230px ; left: 50px;
}
#testvid {
position: relative; bottom: 230px ; left: 300px;
}
}
</style>
</html>
<?php
?>
<html>
<script src="https://code.jquery.com/jquery-3.5.1.js" integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" crossorigin="anonymous"></script>
</html>
<script>
$(function() {
$('#press_me').click(function() {
var postid = $(this).val();
var request = $.ajax({
type: "POST",
url: "memeVote.php",
data: {
'id': postid
}
}).done(function(data) {
obj = JSON.parse(data);
$("#votes").text(obj.vote);
});
});
});
</script>
您可以像下面這樣更改按鈕,以便它僅傳遞相應帖子的id
,即:
echo "<button type='button' data-value ='".$row['id']."' class='press_me' value='1'>waat</button>";
現在, data-value
將具有特定帖子id
的值,並將您的id
更改為class
。 然后,您的jquery代碼將如下所示:
//change id to class
$('.press_me').click(function() {
var postid = $(this).attr('data-value');//get attr value
//your ajax call
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.