
下面講解,在首頁,如何調用圈子的同時也調用他們相關的貼子.
單單調用圈子,就像調用文章一樣,很多人都能輕松實現,
比如下面的代碼
~~~
{qb:tag name="xxx" type="qun" rows="4"}
<div style="border:1px solid #333;margin:20px;">
<div>圈子名稱:{$rs.title}</div>
</div>
{/qb:tag}
~~~
如果還要調用圈子的貼子或商品的話,很多人就會想到內循環,在過去,包括現在很多同行,也是這么做的,通過內循環去調用相關的數據,
但是我們非常反對這樣做,因為這樣效率非常低,容易把頁面卡死,所以齊博標簽不支持內循環.
要實現內部數據相關聯,我們要借助JS實現異步加載, 這樣就不會影響頁面的打開,提高用戶體驗.
代碼如下
~~~
{qb:tag name="xxx" type="qun" rows="4"}
<div style="border:1px solid #333;margin:20px;">
<div>圈子名稱:{$rs.title}</div>
<div class="qun_bbs_title" data-id="{$rs.id}">
<!--圈子的相關聯的貼子數據,外層的qun_bbs_title是給JS處理數據做標志的,data-id就是標志圈子的ID,外層的這兩個元素必須要存在-->
</div>
</div>
{/qb:tag}
<div style="display:none;">
<!--圈子相關聯的貼子數據的標簽,移動這里來了,這是一個孤島,他要通過下面的JS處理,才能把數據轉移到圈子里邊-->
<!--其中關鍵點 ext_id=$ext_id 就是貼子數據表中的字段,用來跟圈子做關聯的 -->
{qb:tag name="bbs_tpl_001" type="bbs" rows="3" js="xx01" where="ext_id=$ext_id"}
<li>{$i}、<a href="{:urls('bbs/content/show','id='.$rs.id)}">{$rs.title}</a></li>
{/qb:tag}
</div>
<!--JS異步獲取相關數據-->
<script type="text/javascript">
$(".qun_bbs_title").each(function(){
var that = $(this); //下面進行DIV賦值貼子數據要用
var id = $(this).data('id'); //對應每個圈子的ID
var page = 1; //只顯示第一頁的內容
var url = "{qb:url name='bbs_tpl_001'}" + page + "&ext_id=" + id; //這里的跟之前講的標簽獲取更多數據一樣的,重點就ext_id是貼子里的字段要跟圈子相關聯
//下面這一段,都是通用代碼,取得貼子數據后,就傳給圈子
$.get(url,function(res){
if(res.code==0){
if(res.data!=''){
that.html(res.data);
}
}
});
});
</script>
~~~
上面的代碼當中,由于標簽不支持嵌套, 所以把 圈子的相關數據,即貼子的標簽移了出來.
以下這部分就是圈子的貼子標簽部分,其中標簽里邊的內容,才是有用的.標簽外的就是把他隱藏起來,不要影響頁面布局.
~~~
<div style="display:none;">
<!--圈子的相關數據的標簽,移動這里來了-->
{qb:tag name="bbs_tpl_001" type="bbs" rows="3" js="xx01" where="ext_id=$ext_id"}
<li>{$i}、<a href="{:urls('bbs/content/show','id='.$rs.id)}">{$rs.title}</a></li>
{/qb:tag}
</div>
~~~
另外在圈子部分中關聯貼子的DIV代碼也有兩項關鍵參數
~~~
<div class="qun_bbs_title" data-id="{$rs.id}">
~~~
其中`data-id="{$rs.id}"`?就是標志圈子的ID值
而`class="qun_bbs_title"`?就是標志給下面JS處理數據用的.

貼子標簽中,有一項關鍵的參數
`where="ext_id=$ext_id"`?這個就是非常關鍵的地方, 之前跟大家講解過where就是條件篩選用的.這里要用變量參數,
在這里,貼子里邊的ext_id字段是跟圈子相關聯的.所以這里就這么寫,如果是用戶相關聯的話,就要換成`where="uid=$uid"`
下面這段JS代碼,大家必須要熟練,因為到處都會用到
~~~
<script type="text/javascript">
$(".qun_bbs_title").each(function(){
var that = $(this);
var id = $(this).data('id'); //對應圈子的ID
var page = 1; //只顯示第一頁的內容
var url = "{qb:url name='bbs_tpl_001'}" + page + "&ext_id=" + id;
$.get(url,function(res){
if(res.code==0){
if(res.data!=''){
that.html(res.data);
}
}
});
});
</script>
~~~
其中下面這個就是JQ的知識,就是說尋找 qun_bbs_title這樣的類的元素,對他進行相關處理, 我們上面標注了圈子里相關的貼子,要進行相關處理
~~~
$(".qun_bbs_title").each(function(){
//執行相關操作
});
~~~
而其中這個
~~~
var url = "{qb:url name='bbs_tpl_001'}" + page + "&ext_id=" + id;
~~~
就跟之前跟大家講解的標簽獲取分頁數據,異步更新類似的. 用得非常多,所以大家必須要熟悉. 這里的標簽名`bbs_tpl_001`跟上面的貼子標簽名必須是一致的, 這里的頁碼,只取第一頁,?`"&ext_id=" + id`?這個就是關鍵之處了,圈子id就是通過JS得到的,然后傳遞給貼子數據表中的關聯字段 ext_id ,這樣就可以調取到對應的貼子了
* * *
上面講解的是調用論壇的貼子, 換一下就能調用圈子的商品 或文章 .
另外,還可以同時調用的. 需要把JS復制多一份,?標簽名與類名不要重復即可.
- 序言
- 聲明
- 齊博X1基礎
- 齊博X1的誕生
- 齊博X1目錄結構
- 如何安裝齊博X1
- 新手快速入門教程
- 常用文件目錄說明
- 齊博X1標簽
- 什么是標簽
- 當前URL標簽
- 圖片標簽
- 單張圖片標簽的使用
- 多張組圖的標簽調用
- 標簽進階之幻燈片制作
- 背景圖如何設置標簽
- 內容頁標簽
- 內容頁中下一頁上一頁的標簽
- 內容評論標簽的風格制作
- 標簽實例
- 做模板組圖單圖無圖混排的處理
- 列表頁制作及無滾動加載內容
- 調用多個圈子同時調用貼子
- 調用多個圈子同時調用相關會員
- 標簽的嵌套用法,調用聚合數據
- 標簽如何調用論壇內容
- 標簽設置取組圖不存在就取內容中的圖片
- 標簽之無刷新顯示更多
- 異步加載標簽數據
- 標簽動態調用數據
- 文本代碼標簽的使用
- where 標簽動態變量查詢
- where 實現條件篩選與數據關聯
- 會員中心如何加標簽
- 模板中常用的TP標簽數據處理
- 同一個標簽要更換不同模塊的數據
- 萬能數據統計之fun函數
- 齊博X1模塊
- 什么是模塊?模塊的組成。
- 如何添加字段
- 欄目名稱的調用
- 欄目名稱調用詳解
- 相關欄目名稱的調用
- 輔欄目(專題)的使用說明
- 模塊后期要加參數的方法
- 表單自動生成器
- 簡單的模塊制作說明(隨風編寫)
- 齊博X1插件
- 插件.七牛云.配置說明
- 齊博X1鉤子
- 鉤子簡單制作-tag加連接解說版(隨風編寫)
- 齊博X1模板
- 模板目錄文件說明
- 幾個關鍵模板文件要熟知
- 新模板要注意問題
- 模板文件調用的優先級
- 2018.8.13模板制作升級調整
- block模板的分塊替換
- 模板包含文件使用說明
- 圈子黃頁風格制作說明
- 齊博X1配置
- 微信和小程序的配置
- 如何對接公眾號
- 對接小程序設置
- 在線支付接口的使用
- 支付寶對接收款配置
- 阿里云短信配置
- 郵箱接口設置
- 郵箱接口設置之QQ普通郵箱
- 郵箱接口設置之163普通郵箱
- 郵箱接口設置之QQ企業郵箱
- QQ登錄接口配置
- 齊博X1路由
- URL偽靜態設置
- route.php與routemy.php短網址設置
- 齊博X1二次開發
- 二次開發的靈魂fun函數
- 商城判斷是否購買過
- 如何調取當前模塊ID
- 模塊安裝文件講解
- 表單快速啟用城市地區功能
- 自定義字段多文件多圖的顯示處理
- 后臺網站參數配置修改與添加
- 頻道插件如何對接圈子
- 自定義字段下拉菜單關聯其它數據表
- 自定義字段表單默認調用會員資料
- 齊博X1注意事項
- 云市場注意事項
- 如何強制進后臺
- 換服務器如何轉移網站
- 再強調嚴禁用記事本改任何文件
- 解決Web部署 svg/woff/woff2字體 404錯誤
- 齊博X1更新記錄
- 關于thinkphp5