# Html 模版源碼
~~~
<div class="text-center">
<button class="btn bg-success" type="button" id="sc"
user_id="{$article->user->id}" article_id="{$article.id}" session_id="{$Think.session.uid}"
>
{if $Think.session.code == 1}
<span style="color: white!important;">取消收藏 </span></button>
{else/}
<span style="color: white!important;">收藏 </span></button>
{/if}
<button class="btn bg-danger" type="button" id="dz" user_id="{$article->user->id}" article_id="{$article.id}" session_id="{$Think.session.uid}">
{if $Think.session.zan == 1}
<span style="color: white!important;">取消點贊</span>
{else/}
<span style="color: white!important;">點贊 </span></button>
{/if}
</button>
</div>
~~~
# js代碼
~~~
<script>
$(function () {
//收藏功能
$('#sc').click(function () {
//獲取文章id
let user_id = $(this).attr('user_id')
//獲取文章id
let article_id = $(this).attr('article_id')
//獲取session id
let session_id = $(this).attr('session_id')
if (user_id && article_id){
$.ajax({
type: 'get',
url: "{:url('/collection')}",
data:{
'user_id':user_id,
'article_id':article_id,
'session_id':session_id,
},
dataType: 'json',
success: function(data){
switch (data.status) {
case 1:
swal({
text: data.message,
icon: "success",
button: false
});
$('#sc').attr('class','btn bg-danger')
$('#sc').html(' <span style="color: white!important;">收藏成功 </span>')
break
case 0 :
swal({
text: data.message,
icon: "warning",
button: false,
});
break
case -1:
swal({
text: data.message,
icon: "warning",
button: false,
});
$('#sc').attr('class','btn bg-success')
$('#sc').html('<span style="color: white!important;">收藏</span>')
break
}
}
})
}
})
//點贊功能
$('#dz').click(function () {
//獲取文章id
let user_id = $(this).attr('user_id')
//獲取文章id
let article_id = $(this).attr('article_id')
//獲取session id
let session_id = $(this).attr('session_id')
if (user_id && article_id){
$.ajax({
type: 'get',
url: "{:url('/zan')}",
data:{
'user_id':user_id,
'article_id':article_id,
'session_id':session_id,
},
dataType: 'json',
success: function(data){
switch (data.status) {
case 1:
swal({
text: data.message,
icon: "success",
button: false
});
$('#dz').attr('class','btn bg-danger')
$('#dz').html(' <span style="color: white!important;">點贊成功 </span>')
break
case 0 :
swal({
text: data.message,
icon: "warning",
button: false,
});
break
case -1:
swal({
text: data.message,
icon: "warning",
button: false,
});
$('#dz').attr('class','btn bg-success')
$('#dz').html('<span style="color: white!important;">點贊</span>')
break
}
}
})
}
})
})
</script>
~~~
# php 代碼
~~~
//加入收藏
public function collection(Request $request){
$data = $request->param();
//判斷是否登錄進行收藏
if ($data['session_id'] == null){
return ['status'=> 0,'message'=>'您還沒有登錄,不能進行文章收藏'];
}
//定義規則,進行數據庫查詢
$map[] = ['user_id','=', $data['user_id']];
$map[] = ['article_id','=', $data['article_id']];
$rule = Db::table('collection')->where($map)->find();
if (is_null($rule)){
$rule = Db::table('collection')->insert(
[
'user_id' => $data['user_id'],
'article_id' => $data['article_id'],
]
);
session('code',1);
return ['status'=>1,'message'=>'收藏成功'];
}else{
session('code',0);
Db::table('collection')->where($map)->delete();
return ['status'=>-1, 'message'=>'取消收藏'];
}
}
//點贊
public function zan(Request $request){
$data = $request->param();
//判斷是否登錄進行收藏
if ($data['session_id'] == null){
return ['status'=> 0,'message'=>'您還沒有登錄,不能對文章點贊'];
}
//定義規則,進行數據庫查詢
$map[] = ['user_id','=', $data['user_id']];
$map[] = ['article_id','=', $data['article_id']];
$rule = Db::table('zan')->where($map)->find();
if (is_null($rule)){
Db::table('zan')->insert(
[
'user_id' => $data['user_id'],
'article_id' => $data['article_id'],
]
);
session('zan',1);
return ['status'=>1,'message'=>'點贊成功'];
}else{
session('zan',0);
Db::table('zan')->where($map)->delete();
return ['status'=>-1, 'message'=>'取消點贊'];
}
}
~~~
# 路由設置
~~~
//加入收藏
Route::get('collection','index/collection');
//點贊
Route::get('zan','index/zan');
~~~
- Tp 框架5.1安裝
- Tp 資源控制器創建跟非資源控制器
- Tp 自定義目錄
- Tp 鏈接傳參,地址欄獲取參數
- Tp ajax 異步提交數據
- Tp 模型里面指定開啟時間戳
- Tp加載驗證碼
- Tp 模版
- Tp 模版繼承
- Tp模版頁面If 條件 及session存儲 取出
- Tp 默認在模版頁面指定內容
- Tp 模版頁面獲取session
- Tp驗證器
- Tp 自定義驗證
- Thinkphp 模型驗證規則使用
- Tp 文件上傳
- Tp 實現注冊自動登錄
- Tp 編輯器
- Tp 結合 Markdown里面的editor編輯器
- Tp Marckdown 編輯模版輸出
- Tp 搜索功能
- Tp 點贊 收藏
- Tp 基本權限
- Tp 創建驗證器
- Sweetalert 彈出框 引用
- Tp 網站 開啟 關閉功能
- Tp 網站 開啟 注冊功能
- Tq QQ登錄
- Tp 郵箱注冊 驗證
- Tp 無限極分類
- Tp 路由
- Tp RBAC權限 適合于任何框架
- 創建權限模型,控制器,驗證規則
- 創建角色 控制器 模型 驗證規則
- 用戶角色設置
- 權限驗證
- Tp auth 權限
- 第一部 auth 安裝
- 第二部 創建 三張數據庫
- 第三部 創建用戶控制器
- 第四部 創建規則表
- 規則表基本操作
- 1 規則頁面加載
- 2 添加規則
- 3 編輯規則
- 4 刪除規則
- 第五部 創建用戶組
- 用戶組基本操作
- 第一步 展示用戶組首頁
- 第二步 添加用戶組
- 第三步 編輯用戶組
- 第四部 刪除用戶組
- 第六步設置權限
- 第一步 創建 模型 控制器
- 第二步 首頁顯示
- 第三部 設置用戶權限
- 第七步 執行權限認證
- 備注 附加規則原理
- Tp 數據庫
- 外鍵約束
- Tp 結合layui 上傳
- Layui 編輯器 前端展示
- Tp 模版eq
- Tp 刪除
- Tp session 處理
- Tp cache緩存方法
- Tp 后臺驗證管理員登錄
- 前臺Nav 導航
- 左邊導航
- Tp 批量刪除
- O2O
- Tp框架插入數據自帶時間戳
- Tp 結合layui 分頁
- Tp 整合百度地圖
- Tp 結合城市三級聯動
- 密碼驗證
- 團購時間
- Tp模板時間修改
- 安卓App 平臺入駐上線
- Api 接口返回
- Thinkphp 生成5.1二維碼
- 回調Api
- layui 關閉框 刷新
- Layui 監聽
- 判斷是否是pc端 手機端
- Lauyi 自動轉換時間
- Tp 增加時間
- ajax 同步 異步處理
- 彈出框
- 傳輸數據編輯
- 上傳 引用 uploadify
- js 收縮
- Tp 增加數據表
- Tp-前置鉤子
- 刪除代碼
- 適合tp5.0描述文字過長
- php 三級城市城市表帶數據
- layu結合 tp table數據數組循環
- layui 解決數據為NUll 錯誤代碼