亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

自動為用戶添加喜歡

自動為用戶添加喜歡

PHP
米脂 2023-09-15 09:30:52
我想添加用戶喜歡在頁面加載上發帖,即如果用戶已經喜歡該帖子但它不起作用,我想讓喜歡的按鈕顯示喜歡,這是我的ajax代碼for (var l = 0; l < 5; l++) {          this_comment_id = $('#like_check_'+l).attr('data-id');              $.ajax({                      url:"comment_post.php",                      type: 'POST',                     data:{comment_check:this_comment_id},                      dataType: 'text',                      success:function(data)                    {                            if (data.search("ok") > -1) {                                $('#like_check_'+l).addClass("red_heart");                          }else if(data.search("unliked") > -1){                                $('#like_check_'+l).removeClass("red_heart");                          }                    }              })    }它的目的是將 red_hearth 添加到用戶在此 html 元素中喜歡的帖子中<i onclick="like_post(this)" class="fas fa-heart float-right p-1 my-1 mr-3" data-id="1" id="like_check_0" data-toggle="tooltip" data-placement="top" title="I like it"></i><i onclick="like_post(this)" class="fas fa-heart float-right p-1 my-1 mr-3" data-id="2" id="like_check_1" data-toggle="tooltip" data-placement="top" title="I like it"></i><i onclick="like_post(this)" class="fas fa-heart float-right p-1 my-1 mr-3" data-id="3" id="like_check_2" data-toggle="tooltip" data-placement="top" title="I like it"></i><i onclick="like_post(this)" class="fas fa-heart float-right p-1 my-1 mr-3" data-id="4" id="like_check_3" data-toggle="tooltip" data-placement="top" title="I like it"></i><i onclick="like_post(this)" class="fas fa-heart float-right p-1 my-1 mr-3" data-id="5" id="like_check_4" data-toggle="tooltip" data-placement="top" title="I like it"></i>
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

因為我確實不使用 jQuery,所以嘗試使用它來回答問題是愚蠢的,因此會犯錯誤,所以請理解,這就是為什么我在這里用普通的 Javascript 來回答。不知道表模式、函數的作用like_post或某人如何做某事unlike都會提出問題,但做出某些假設,人們可以在這里忽略這一點。


如果您稍微修改 HTML 以刪除 ID 屬性(這實際上不是必需的)


<i class='fas fa-heart float-right p-1 my-1 mr-3' data-id='1' data-toggle='tooltip' data-placement='top' title='I like it'></i>

<i class='fas fa-heart float-right p-1 my-1 mr-3' data-id='2' data-toggle='tooltip' data-placement='top' title='I like it'></i>

<i class='fas fa-heart float-right p-1 my-1 mr-3' data-id='3' data-toggle='tooltip' data-placement='top' title='I like it'></i>

<i class='fas fa-heart float-right p-1 my-1 mr-3' data-id='4' data-toggle='tooltip' data-placement='top' title='I like it'></i>

<i class='fas fa-heart float-right p-1 my-1 mr-3' data-id='5' data-toggle='tooltip' data-placement='top' title='I like it'></i>

然后你可以從 HTML 元素中收集data-id值 - 大概這些值并不總是簡單的,1,2,3,4,5但實際上是來自文章或數據庫的 ID - 所以實際上可能更像23,6,98,123,5(?)


var iCol=document.querySelectorAll( 'i[data-id]' );

var ids=[];


iCol.forEach( i=>{

    ids.push( i.dataset.id )

});

有了所有相關的 ID,您就可以向服務器發出單個 Ajax 查詢,服務器將使用這些 ID 來處理用戶things之前喜歡的用戶。由于以下內容是基本的jQuery,僅對原始內容進行了輕微修改,因此我在這里使用它而不是使用XMLHttpRequest或Fetch


$.ajax({  

    url:'comment_post.php',  

    type:'POST', 

    data:{ comment_check:ids },  // send the collected IDs

    dataType:'text',  

    success:function(json){

        json.liked.forEach( id => {

            document.querySelector('i[ data-id="'+id+'" ]').classList.add('red_heart')

        })

    }

});

檢查數據庫的 PHP 腳本:


<?php


    session_start();

    

    if( isset( $_POST['comment_check'] ) ) {

        

        $payload=[];

        $ids=explode( ',', $_POST['comment_check'] );

        

        $sql='select `comment_id` from `comment_like` where `liker_id`=? and `liked`="Y"';

        $stmt=$con->prepare( $sql );

        $stmt->bind_param( 's', $_SESSION['user_id'] );

        $status=$stmt->execute();

        $stmt->bind_result( $cid );

        

        

        $payload['status']=$status;

        $payload['user_id']=$_SESSION['user_id'];

        $payload['liked']=[];

        

        

        while( $stmt->fetch() ){

            if( in_array( $cid, $ids ) ) $payload['liked'][]=$cid;

        }

    

        

        header('Content-Type: application/json');

        exit( json_encode( $payload ) );

    }


?>


查看完整回答
反對 回復 2023-09-15
  • 1 回答
  • 0 關注
  • 100 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號