在互聯網的世界里,很多網站都會設計一些讓用戶可以互相交互的功能,比如用戶可以對自己喜歡的文章或評論進行點贊。那么這樣的點贊功能究竟是如何實現的呢?在php開發中,我們常用的是php ajax頂。下面就來詳細介紹一下php ajax頂的實現過程。
我們先來看一下網頁上的點贊功能。一般來說,一個點贊按鈕的實現是這樣的:當用戶點擊點贊按鈕之后,按鈕的背景色會發生變化,并且該文章或評論的點贊數會加一,同時用戶無法重復進行點贊操作。那么在php ajax頂中,我們就需要使用到前端ajax技術和后端php技術。
//前端html代碼(假設有一個id為"like"的按鈕,一個id為"like_count"的元素) $("#like").click(function(){ $.ajax({ type:"POST", url:"like.php", //后端php文件路徑 data:{ //傳遞給后端的數據:文章或評論的id id:id }, success:function(response){ if(response=="liked"){ alert("您已經贊過了!"); }else{ $("#like").css("background-color","red"); var count=parseInt($("#like_count").text()); $("#like_count").text(count+1); } } }); });
如上所示,我們在前端使用ajax向后端發送一個POST請求,傳遞給后端該文章/評論的id。后端根據該id查詢該文章/評論是否已經被該用戶點過贊,如果點過贊則返回"liked",否則返回"success"。如果返回"liked",前端會彈出提示信息;如果返回"success",則前端會修改按鈕的顏色,并且讓該文章/評論的點贊數加一。下面是后端php代碼實現。
//后端php代碼(假設有一個名為like.php的文件) $id=$_POST['id']; if($had_liked){ //如果已經點過贊 echo "liked"; }else{ //如果未點過贊 $like_count++; //點贊數加一 $update_like="UPDATE articles SET like_count=$like_count WHERE id=$id"; mysqli_query($conn,$update_like); echo "success"; }
在后端,我們首先從前端接收到文章/評論id,然后查詢該文章/評論是否已經被該用戶點過贊。如果已經點過贊,則返回"liked";否則,我們將該文章/評論的點贊數加一,更新數據表中該文章/評論的點贊數,并返回"success"。
總結一下,php ajax頂的實現方式就是:前端使用ajax向后端發送一個POST請求,傳遞給后端文章/評論的id。在后端接收到該請求之后,查詢該文章/評論是否已經被該用戶點過贊。如果已經點過贊,則返回"liked";否則,將該文章/評論的點贊數加一,更新數據表中該文章/評論的點贊數,并返回"success"。前端根據后端返回的結果展示相應的提示信息或修改網頁上的點贊按鈕和點贊數。這樣,就實現了一個簡單的php ajax頂的功能了。