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

為了賬號安全,請及時綁定郵箱和手機立即綁定

thinkphp 中的volist標簽在ajax操作中的特殊性

標簽:
ThinkPHP

背景

在一个Thinkphp的复杂页面(包含volist)中实现volist标签显示jquery查询结果的返回

知识点

使用ajax的目的是不刷新整个页面的前提下实现部分表格数据的刷新,但是注意Thinkphp框架中的volist标签是运行在服务器端的,所以使用js动态获取的数据是无法使用thinkphp标签的,无法将$this->ajaxReturn($data);的结果直接用$("#div_id").html(data)的方法显示。

目前找到的解决方法(都有缺陷)

1.新建一个页面进行显示

重新打开一个跳转页面,将返回的值采用 $this->assign("volist_name", $data);的方式返回。
**缺陷:相当于对整个页面重新进行了加载,并没有达到部分更新表单的需求。

2.不用thinkphp框架的标签进行显示

不采用volist标签,对ajaxReturn返回的结果进行分析,按照自己的js的template模板进行显示,可以实现局部表单更新

1,template模板<script id="events-template" type="x-tmpl-mustache">
    {{#data}}
        <tr data-event-id="{{id}}">
            <td style="color: {{event_color}}" title="{{type_name}}">{{type_name}}</td>
            <td>{{isp_name}}</td>
            <td title="AS{{asn}}">AS{{asn}}</td>
            <td title="{{update_time}}">{{update_time}}</td>
        </tr>
    {{/data}}</script>2.对html简单处理
var events_obj = $('#table_id');
var events_html = events_obj.find('tbody');
var events_tpl = $('#events-template').html();

3.对返回的数据进行展示(在ajax的success后function中的操作)
var rendered_events = Mustache.render(events_tpl, data);
events_html.html(rendered_events);

3.暴力拼接

在查找解决方案时遇到的一种震惊的方案https://www.bbsmax.com/A/A7zg2MWld4/



作者:analanxingde
链接:https://www.jianshu.com/p/1638fd380dd7

點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

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

幫助反饋 APP下載

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

公眾號

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

舉報

0/150
提交
取消