Heim > Fragen und Antworten > Hauptteil
Hallo zusammen. Ich entwerfe eine Plattform ähnlich einer Social-Media-Plattform mit einem Post-, Like- und Kommentarsystem. Ich verwende jquery für „Gefällt mir“-Angaben und wann immer ich eine Textnachricht senden und einen Beitrag mit „Gefällt mir“ versehen möchte, funktioniert nur der erste Beitrag, aber das Like-System für andere Beiträge funktioniert nicht. Wie kann ich es lösen? Dies ist die index.php, die den Post- und JQuery-Code enthält.
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>post</title> <link rel="stylesheet" href="style.css"> <link rel="stylesheet" href="font/css/all.css"> <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> <script> $(document).ready(function(){ $("#likings").click(function(){ var name = $("input").val(); $.post("like.php", { sugess: name }, function(data, status){ $("#like").html(data); }); }); }); </script> </head> <?php include('conn.php'); ?> <body> <?php $sql = "SELECT * FROM post"; $result = mysqli_query($conn, $sql); while($row = mysqli_fetch_assoc($result)){ $id = $row['id']; $name = $row['name']; $image = $row['image']; $action = $row['action']; $date = $row['date']; $time = $row['time']; $sqlcount = "SELECT * FROM likes WHERE postid=$id"; $resultcount = mysqli_query($conn, $sqlcount); $count = mysqli_num_rows($resultcount); echo ' <center> <div class="post"> <div class="up"> <div> <img class="img" src="img/'.$image.'"> </div> <div class="uptext"><span class="name">'.$name.' </span><span class="des"> '.$action.' <br>'.$date.' at '.$time.'</span></div> <div> ... </div> </div> <img src="img/'.$image.'"> <div class="liking"> <div class="like"> <i class="fa fa-thumbs-up" aria-hidden="true" style="text-align: left; color: navy;"></i><span id="like">'.$count.'</span> </div> <div> <p>23 comments</p> </div> </div> <div class="likenow"> <div> <input name="id" value="'.$id.'" hidden> <i class="fa fa-thumbs-up" id="likings" aria-hidden="true" style="text-align: left; color: navy;"></i>like </div> <div> <i class="fa-solid fa-message"></i> comment </div> </div> <p style="text-align: left; margin-left: 20px; font-size: 10pt;">view more comments</p> <div class="comments"> <p>itz celeb <br> very nice</p> <p>titi kosi <br> so cute</p> </div> <div class="entercomment"> <div> <img class="img" src="img/'.$image.'"> </div> <div> <input placeholder="Write a comment..."><i class="fa-solid fa-message" style="margin-left: 20px;"></i> </div> </div> </div> </center>'; } ?> </body> </html>
Das ist mein Lieblings-PHP-Code.
<?php include("conn.php"); $name = $_POST['sugess']; $sql = "INSERT INTO likes(postid, likes) VALUES('$name', '1')"; $result = mysqli_query($conn, $sql); $sqlcount = "SELECT * FROM likes WHERE postid=$name"; $resultcount = mysqli_query($conn, $sqlcount); $count = mysqli_num_rows($resultcount); echo $count; ?>
Wie soll ich es also lösen?
Ähnliche Inhalte sollten für jeden Beitrag gelten. Ich habe eine While-Schleife verwendet, aber ich habe immer noch das gleiche Problem.
P粉9596764102023-09-17 09:27:38
你的问题出在选择器上,它是一个ID选择器,使用ID选择器你只能选择一个元素,尝试将其更改为类选择器
<i class="fa fa-thumbs-up" id="likings" aria-hidden="true" style="text-align: left; color: navy;"></i>
至
<i class="fa fa-thumbs-up likings" aria-hidden="true" style="text-align: left; color: navy;"></i>
应该可以
<script> $(document).ready(function(){ $(".likings").click(function(){ var name = $("input").val(); $.post("like.php", { sugess: name }, function(data, status){ $("#like").html(data); }); }); }); </script>