1. 程式人生 > >select-2 外掛使用(個人總結簡易使用)

select-2 外掛使用(個人總結簡易使用)

首先看看index頁面,可通用

{extend name="layout" /}

{block name="plugins-css"}
<link href="__LIBS__/jquery-nestable/jquery.nestable.css" rel="stylesheet" type="text/css" />
<link href="__LIBS__/select2/select2.min.css" rel="stylesheet" type="text/css" />
{/block}

{block name="content"}
     {notempty name="page_tips"}
    <div class="alert alert-{$tips_type} alert-dismissable">
        <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
        <p>{$page_tips}</p>
    </div>
    {/notempty}
    <div class="row">
        <div class="col-md-12">
            <div class="block">
                {notempty name="tab_nav"}
                <ul class="nav nav-tabs">
                    {volist name="tab_nav['tab_list']" id="tab"}
                    <li {eq name="tab_nav.curr_tab" value="$key"}class="active"{/eq}>
                    <a href="{$tab.url}{$_pop ?= '?_pop=1'}">{$tab.title|htmlspecialchars}</a>
                    </li>
                    {/volist}
                    <li class="pull-right">
                        <ul class="block-options push-10-t push-10-r">
                            <li>
                                <button type="button" data-toggle="block-option" data-action="refresh_toggle" data-action-mode="demo"><i class="si si-refresh"></i></button>
                            </li>
                            <li>
                                <button type="button" data-toggle="block-option" data-action="fullscreen_toggle"></button>
                            </li>
                        </ul>
                    </li>
                </ul>
                {else/}
                {empty name="_pop"}
                <div class="block-header bg-gray-lighter">
                    <ul class="block-options">
                        <li>
                            <button type="button" data-toggle="block-option" data-action="refresh_toggle" data-action-mode="demo"><i class="si si-refresh"></i></button>
                        </li>
                        <li>
                            <button type="button" data-toggle="block-option" data-action="fullscreen_toggle"></button>
                        </li>
                    </ul>
                    <h3 class="block-title">{$page_title|default=""|htmlspecialchars}</h3>
                </div>
                {/empty}
                {/notempty}
                <div class="block-content tab-content">
                    <div class="tab-pane active">
                        {// 頂部篩選及搜尋 }
                        {$extra_html_toolbar_top|default=''}
                        <div class="row data-table-toolbar">
                            <div class="col-sm-12">
                                {// 搜尋框 }
                                {notempty name="search"}
                                <div class="pull-right search-bar">
                                    <input type="hidden" name="search_field" id="search-field" value="{php}echo input('param.search_field', '') == '' ? $search['field_all'] : input('param.search_field');{/php}">
                                    <div class="input-group">
                                        <div class="input-group-btn">
                                            <button class="btn btn-default" id="search-btn" data-toggle="dropdown" type="button" aria-expanded="false">
                                                搜尋 <span class="caret"></span>
                                            </button>
                                            <ul class="dropdown-menu">
                                                <li>
                                                    <a tabindex="-1" href="javascript:void(0)" data-field="{$search.field_all}">搜尋</a>
                                                </li>
                                                {volist name="search.fields" id="field"}
                                                <li>
                                                    <a tabindex="-1" href="javascript:void(0)" data-field="{$key}">{$field|htmlspecialchars}</a>
                                                </li>
                                                {/volist}
                                            </ul>
                                        </div>
                                        <input type="text" class="form-control" value="{:input('param.keyword', '')}" data-url="{$search.url}" id="search-input" name="keyword" placeholder="{$search.placeholder}">
                                    </div>
                                </div>
                                {/notempty}

                                {// 頂部按鈕 }
                                <div class="toolbar-btn-action">
                                    {if (!empty($top_buttons))}
                                        {volist name="top_buttons" id="button"}
                                            {$button}
                                        {/volist}
                                    {/if}

                                    {// 下拉選單}
                                    {notempty name="_select_list"}
                                    <div class="form-inline" style="display: inline-block;">
                                        {volist name="_select_list" id="item"}
                                        <select class="form-control select-change select-search" id="select-{$item.name}">
                                            {notempty name="item.title"}
                                            <option value="" data-url="{$item.default_url}">{$item.title|default=''}</option>
                                            {/notempty}
                                            {volist name="item['options']" id="option"}
                                            <option value="{$key}" {php}if($item['current'] != '' && $item['current'] == $key){echo 'selected';}{/php}
                                            {php}if(is_array($item['url'])):{/php}
                                            data-url='{$item['url'][$key]}'
                                            {php}endif;{/php}
                                            >{$option}</option>
                                            {/volist}
                                        </select>
                                        {/volist}
                                    </div>
                                    {/notempty}
                                     <div class="form-inline" style="display: inline-block;">
										<select class="js-select2 form-control" id="mall_id" name="mall_id" data-allow-clear="true" data-placeholder="請選擇歸屬賣場" style="width: 248px;" >
                    					 {if condition="input('get.mall_id')"}
                                        <option value="{:input('get.mall_id')}" selected>{:input('get.mall_name')}</option>
                                         {/if}
                    					</select>
                    				 </div>

                                    {// 時間段搜尋}
                                    {notempty name="_filter_time"}
                                    <div class="form-inline time-filter">
                                        <div class="time-filter">
                                            <div class="input-daterange input-group" data-date-format="yyyy-mm-dd">
                                                <input class="form-control" type="text" id="_filter_time_from" name="_filter_time_from" value="{$Request.get._filter_time_from ? $Request.get._filter_time_from : $_filter_time.date_start}" placeholder="{$_filter_time.tips_start}">
                                                <span class="input-group-addon"><i class="fa fa-chevron-right"></i></span>
                                                <input class="form-control" type="text" id="_filter_time_to" name="_filter_time_to" value="{$Request.get._filter_time_to ? $Request.get._filter_time_to : $_filter_time.date_end}" placeholder="{$_filter_time.tips_end}">
                                            </div>
                                            <input type="hidden" id="_filter_time" name="_filter_time" value="{$_filter_time.field}">
                                            <button type="button" id="btn-filter-time" class="btn btn-default">確定</button>
                                        </div>
                                    </div>
                                    {/notempty}
                                </div>
                            </div>
                        </div>
                        {$extra_html_toolbar_bottom|default=''}
                        <div class="table-responsive">
                            {$extra_html_table_top|default=''}
                            <table class="table table-builder table-hover table-bordered table-striped js-table-checkable">
                                <thead>
                                    <tr>
                                        {if (!$hide_checkbox)}
                                        <th class="text-center">
                                            <label class="css-input css-checkbox css-checkbox-primary remove-margin-t remove-margin-b">
                                                <input type="checkbox" id="check-all"><span></span>
                                            </label>
                                        </th>
                                        {/if}

                                        {volist name="columns" id="column"}
                                        <th class="column-{$column['name']} {$column.class|default=''}">
                                            <span class="pull-right">
                                            {// 排序功能}
                                            {php}if (isset($order_columns[$column['name']])): {/php}
                                                {php}
                                                    $_by = input('param._by') == 'asc' ? 'desc' : 'asc';
                                                    $_param = array_merge(input('get.'), ['_by' => $_by, '_order' => $order_columns[$column['name']]]);
                                                    if ($_param) {
                                                        $_get = [];
                                                        foreach ($_param as $key => $value) {
                                                            $_get[] = $key. '=' .$value;
                                                        }
                                                        $_get = '?'.implode('&', $_get);
                                                    }
                                                {/php}
                                                <a href="{$Request.baseUrl}{$_get}" data-toggle="tooltip" data-original-title="排序">
                                                    {php}
                                                        if (input('param._order') == $order_columns[$column['name']]) {
                                                            echo input('param._by') == 'asc' ? '<i class="fa fa-caret-up"></i>' : '<i class="fa fa-caret-down"></i>';
                                                        } else {
                                                            echo '<i class="fa fa-sort text-muted"></i>';
                                                        }
                                                    {/php}
                                                </a>
                                            {php}endif;{/php}

                                            {// 篩選功能}
                                            {php}if (isset($filter_columns[$column['name']])): {/php}
                                            {php}
                                                if (!empty(request()->param('_field_display'))) {
                                                    $_field_display = request()->param('_field_display');
                                                }
                                            {/php}
                                            <a href="javascript:void(0);" class="field-filter" data-filter="{$filter_columns[$column['name']]['filter']}" data-list="{$filter_columns[$column['name']]['list']}" data-type="{$filter_columns[$column['name']]['type']}" data-options='{$filter_columns[$column["name"]]["options"]|default=""}' data-map='{$filter_columns[$column["name"]]["map"]|default=""}' data-field-display="{$column['name']}" data-field="{$filter_columns[$column['name']]['field']}" data-table="{$filter_columns[$column['name']]['table']}" data-toggle="tooltip" data-original-title="篩選"><i class="fa fa-filter {notin name='column.name' value='$_field_display'}text-muted{/notin}"></i></a>
                                            {php}endif;{/php}
                                            </span>

                                            {// 欄位標題}
                                            {$column.title|default=''|htmlspecialchars}
                                        </th>
                                        {/volist}
                                    </tr>
                                </thead>
                                <tbody>
                                    {volist name="row_list" id="row"}
                                    <tr class="{$row['_tr_class']|default=''}">
                                        {if (!$hide_checkbox)}
                                        <td class="text-center">
                                            <label class="css-input css-checkbox css-checkbox-primary">
                                                <input class="ids" type="checkbox" name="ids[]" value="{$row['_primary_key_value']|default='123'}"><span></span>
                                            </label>
                                        </td>
                                        {/if}

                                        {volist name="columns" id="column"}
                                        <td class="{$column['class']|default=''}">
                                            {$row[$column['name']]|default=''}
                                        </td>
                                        {/volist}
                                    </tr>
                                    {/volist}

                                    {empty name="row_list"}
                                    <tr class="table-empty">
                                        {php}$colspan = count($columns)+1{/php}
                                        <td class="text-center empty-info" colspan="{$colspan}">
                                            <i class="fa fa-database"></i> 暫無資料<br>
                                        </td>
                                    </tr>
                                    {/empty}
                                </tbody>
                            </table>
                            {$extra_html_table_bottom|default=''}
                        </div>
                        <div class="data-table-toolbar">
                            <div class="row">
                                <div class="col-sm-12">
                                    {// 分頁 }
                                    {notempty name="pages"}
                                        {$pages}
                                    {/notempty}
                                    {notempty name="_page_info"}
                                    <div class="pagination-info pull-right">
                                        <div>
                                            <input type="text" class="form-control input-sm go-page" id="go-page" name="page" value="{:input('param.page', '1')}">
                                            <input type="text" class="form-control input-sm nums" id="list-rows" name="list_rows" value="{php}echo input('param.list_rows', '') == '' ? config('list_rows') : input('param.list_rows');{/php}">
                                            / <strong>{$_page_info->lastPage()}</strong> 頁,共 <strong>{$_page_info->total()}</strong> 條資料,每頁顯示數量
                                        </div>
                                    </div>
                                    {/notempty}
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>

{/block}

{block name="script"}

<script src="__LIBS__/select2/select2.full.min.js"></script> 

<script> 
         $(function () {
	    //遠端篩選
	    $("#mall_id").select2({
	    	ajax: {
	            url: "{:url('admin/activityshop/inputcheck')}",
	            dataType: 'json',
	            delay: 250,
	            data: function (params) {
	                return {
	                    q: params.term, // search term
	                    pagesize: 10,//頁面大小
	                    page: params.page//當前頁
	                };
	            },
	            processResults: function (data, params) {
	                params.page = params.page || 1;
	                return {
	                    results: data.list,
	                    pagination: {
	                        more: (params.page * 10) < data.total_count
	                    }
	                };
	            },
	            cache: true
	        },
	        escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
	        minimumInputLength: 0,
	    
	    });
	    $("#mall_id").on("select2:select",function(e){
	    	
	    	window.location.href="{:url('admin/activityshop/index')}"+"?mall_id="+e.params.data.id+"&mall_name="+e.params.data.text;
	    })
	   // 選中事件
	});
</script>

{/block}

根據index頁面,我們只需要關注一個地方

<script> 
         $(function () {
	    //遠端篩選
	    $("#mall_id").select2({
	    	ajax: {
	            url: "{:url('admin/activityshop/inputcheck')}",
	            dataType: 'json',
	            delay: 250,
	            data: function (params) {
	                return {
	                    q: params.term, // search term
	                    pagesize: 10,//頁面大小
	                    page: params.page//當前頁
	                };
	            },
	            processResults: function (data, params) {
	                params.page = params.page || 1;
	                return {
	                    results: data.list,
	                    pagination: {
	                        more: (params.page * 10) < data.total_count
	                    }
	                };
	            },
	            cache: true
	        },
	        escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
	        minimumInputLength: 0,
	    
	    });
	    $("#mall_id").on("select2:select",function(e){
	    	
	    	window.location.href="{:url('admin/activityshop/index')}"+"?mall_id="+e.params.data.id+"&mall_name="+e.params.data.text;
	    })
	   // 選中事件
	});
</script>

我們只需要更改上面程式碼的ajax的路徑為自己的就可以了,還有點選後的跳轉頁面的href的值
核心部分還是我們在後端的處理程式

後端的程式碼如下:

 /**
     * 輸入值查詢的ajax
     * @return \think\response\Json
     */
    public function inputCheck(){
        if($this->request->isAjax()){
            $check = trim( input('q','','htmlspecialchars') );
            $list   = Db::name('activity')->where('act_name','like','%'.$check.'%')->field('act_name,act_id')->paginate(10);
            $_list  = array();
            foreach( $list as $r ){
                $row['id']   = $r['act_id'];
                $row['text'] = "[{$r['act_id']}]".$r['act_name'];
                $_list[] = $row;
            }
            $arr['total_count'] = $list->total();
            $arr['list'] = $_list;
            return json($arr);
        }else{
            $this->error('連線方式出錯!');
        }
    }

裡面的查詢用自己的即可,頁面效果如下
在這裡插入圖片描述

如果需要預設值的話,就需要注意這個頁面的路徑url
在這裡插入圖片描述

這樣的話你只需要在需要預設值的頁面給他傳遞mall_name的這個引數即可

相關推薦

select-2 外掛使用個人總結簡易使用

首先看看index頁面,可通用 {extend name="layout" /} {block name="plugins-css"} <link href="__LIBS__/jquery-nestable/jquery.nestable.css" r

Git基礎命令使用個人總結

down class 一次 onf set .net remote odin -a 個人在開發中整理常用的git命令,相信很多人會需要到的。 全局配置信息: git config --global user.name "Your name"

scrapy詳細資料流走向個人總結

  直接從資料流的角度來說比較容易理解: ·1、Spider建立一個初識url請求,把這個請求通過Engine轉給Scheduler排程模組。然後Scheduler向Engine提供一個請求(這個請求是一個真實的url請求) 疑問點一:為什麼Engine把請求發給Scheduler模組,然

scrapy詳細數據流走向個人總結

emp 這不 inf 處理 download 需要 pipe ddl gin 直接從數據流的角度來說比較容易理解: ·1、Spider創建一個初識url請求,把這個請求通過Engine轉給Scheduler調度模塊。然後Scheduler向Engine提供一個請求(這

java初級面試題個人總結

java基礎 1、String、StringBuffer以及StringBuild的區別? 答:這三個類之間的區別主要是在兩個方面,即執行速度和執行緒安全這兩方面     執行速度:StringBuilder > StringBuffer > String

阿里架構設計之初體驗,送給準備進階架構的朋友個人總結

1 基本概念和目的 架構設計的目的是為了解決系統複雜度帶來的問題,並不是要面面俱到,不需要每個架構都具備高效能、高可用、高擴充套件等特點,而是要識別出實際業務實際情況的複雜點,然後有有針對性地解決問題,即:有的放矢,而不是貪大求全。 在實際情況中,不一定每個系統都要做架

一個Activity多個Handler時,Message是如何傳遞的個人總結

作者:海岸線-haianxian  來源:CSDN  原文:https://blog.csdn.net/u010680097/article/details/52142396  版權宣告:本文為博主原創文章,轉載請附上博文連結!   上面是作者的原文

Doxygen使用教程個人總結

簡介Doxygen 一.什麼是Doxygen? Doxygen 是一個程式的檔案產生工具,可將程式中的特定批註轉換成為說明檔案。通常我們在寫程式時,或多或少都會寫上批註,但是對於其它人而言,要直接探索程式裡的批註,與打撈鐵達尼號同樣的辛苦。大部分有用的批註都是屬於針對函式

關於虛擬機器VMware 中橋接模式與nat模式的區別個人總結

一、橋接模式 1.本人通過網上的的查詢得到的答案是,橋接模式使用的是區域網模式,關聯的同時不會對主機網路產生很大的影響,但是我在配置的時候遇到的問題就是在不同的環境下,每次的ip地址都不一樣,導致每次都需要重新配置,橋接模式試用與在固定的網路下面使用,本人也通過配置靜態ip

Swift學習總結個人總結,以方便理解為主

swift總結 一、註冊cell 1.用nib, 向 tableview 註冊 cell 全域性變數 let cellIdentifier = "myCell" myTableView!.registerNib(UINib(nibName: "MyCell", bundle

iOS 崩潰日誌分析個人總結,最實用

要分析奔潰日誌需要三個檔案:crash日誌,symbolicatecrash分析工具,.dSYM符號集 0. 在桌面建立一個crash資料夾 1. 需要Xcode自帶的崩潰分析工具symbolicatecrash,這個檔案的位置參考:/Applications/Xcode.

軟體測試需要具備的知識體系個人總結

一、軟體的生命週期(SDLC,Systems Development Life Cycle,SDLC) 軟體計劃與可行性研究(問題定義、可行性研究);需求分析;軟體設計(概要設計、詳細設計);編碼;軟體測試;執行與維護 生存週期劃分          各階段的

sql語句合集大全個人總結

--查詢emp表 select * from emp; --查詢emp表的sal select a.SAL from emp a; --查詢emp表的ename select a.ename from

Delete出錯分析總結個人總結很到位 0x0000007ff64426f87e(ucrtbased.dll)處處於dataa.exe中引發的異常:

近日在除錯C++程式中new class 後delete 出現如下錯誤: * 0x0000007ff64426f87e(ucrtbased.dll)處(處於dataa.exe中)引發的異常:0xC0000005:讀取位置(0xffffffffffffff

關於activity工作流常用操作個人總結

1、部署流程定義 repositoryService.createDeployment().addClasspathResource(path+filename).deploy(); 2、刪除流程定義 ProcessDefinitionQuery quer

redis常用指令個人總結

Redis常用命令集 1)連線操作命令 quit:關閉連線(connection)auth:簡單密碼認證help cmd: 檢視cmd幫助,例如:help quit 2)持久化 save:將資料同步儲存到磁碟bgsave:將資料非同步儲存到磁碟lastsave:返回上次

HR開發個人總結 有點亂哦

業務需求: 完成一張員工績效考評的明細表,其樣子大致為: 成本中心 成本中心名稱 部門名稱 崗位描述 員工子組 員工編號 姓名 入職日期 異動本崗位日期 XXXX年XX月份 XXXX年XX月份 XXXX年XX月份 XXXX年XX月份 XXXX年XX月份 XXXX年XX月份

redis常用命令個人總結docker中redis容器

1.進入docker的redis docker exec -it [IP] redis-cli 2.執行操作之前要驗證密碼Authentication required auth 12345678 3.檢視 key、根據key搜尋可以用萬

Java 獲得網頁原始碼和模擬瀏覽器請求個人總結

Java獲取原始碼自己知道的幾種方式,在這裡總結一下。 1:GetSourceCode.java package kalision; import java.io.BufferedReader; import java.io.IOException; import

java事件監聽器使用小結個人總結,有錯請指

//第一種:外部定義,通過監聽器的物件來呼叫的監聽器     import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.