recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment puis-je faire fonctionner ma fonctionnalité de type jQuery sur chaque publication de mon projet

Bonjour à tous. Je conçois une plate-forme similaire à une plate-forme de médias sociaux avec un système de publication, de like et de commentaire. J'utilise jquery pour les likes et chaque fois que je veux envoyer un message texte et aimer une publication, seul le premier message fonctionne mais le système similaire pour les autres messages ne fonctionne pas. Comment puis-je le résoudre. Il s'agit du fichier index.php qui contient le code post et jquery.

<!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>

C'est mon code php préféré.

<?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;
?>

Alors, comment dois-je le résoudre ?

Un contenu similaire doit s'appliquer à chaque publication. J'ai utilisé une boucle while mais j'ai toujours le même problème.

P粉111927962P粉111927962424 Il y a quelques jours1087

répondre à tous(1)je répondrai

  • P粉959676410

    P粉9596764102023-09-17 09:27:38

    Votre problème vient du sélecteur, c'est un sélecteur d'ID, avec le sélecteur d'ID vous ne pouvez sélectionner qu'un seul élément, essayez de le changer en sélecteur de classe

    <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>

    Ça devrait aller

    <script>
            $(document).ready(function(){
    
                $(".likings").click(function(){
                    var name = $("input").val();
                    $.post("like.php", {
                        sugess: name
                    }, function(data, status){
                        $("#like").html(data);
                    });
                });
            });
    </script>

    répondre
    0
  • Annulerrépondre