Yii GridView は期間フィルタリング機能を実装します

不言
リリース: 2023-03-25 10:00:02
オリジナル
1716 人が閲覧しました

この記事では主にyii Gridviewの期間フィルタリング機能、入力ボックス、自動送信機能などを詳しく紹介しますので、興味のある方は参考にしてください

yii GridViewは強力な機能を持っていますが、時間フィルタリングが面倒です。そして、それはデータベースの保存形式に関連しています

そして、問題は、Yii は時間に関するテキスト検索形式しか提供していない、つまり、2017 のような正確な日付しか見つけることができないということです。 8-10。 Almighty のお客様は、これではうまくいかない、期間を検索したいと言いました。入力ボックスが欲しいだけです!自動で提出したい!

注意点:

1. まず、関連する js を Gridview に導入して、二重日付を実装します。ここでは、シンプルで寛大な jquery.daterangepicker.js を選択しました (欠点: 年は選択できません)。手動でクリックする必要があります。私はここにいます。何年にもわたっては使用できません)

2. 検索モデルでデータを処理し、時間クエリを実行する必要があります

3. 日付を選択した後、入力ボックスにはカーソルがありません。データを更新するには、2 回クリックして Enter キーを押す必要があります。これは、元のグリッドビューのエクスペリエンスとはまったく異なります

4. 入力日付データを検出した後、jq を使用してキャリッジ リターンをシミュレートします。オリジナルの GridView のようなエクスペリエンスを完璧に実現する送信アクションです。 スムーズな

in view

<?php

//use yii\web\View;
use kartik\grid\GridView;
use yii\bootstrap\Html;
use common\helps\ArrayHelper;
use yii\helpers\Url;

//引入时间段js,这里使用了jquery.daterangepicker.js
$this->registerCssFile(&#39;/plugins/datep/css/daterangepicker.css&#39;);
$this->registerJsFile(&#39;/plugins/datep/js/moment.min.js&#39;);
$this->registerJsFile(&#39;/plugins/datep/js/jquery.daterangepicker.js&#39;);
$this->registerJsFile(&#39;/plugins/datep/js/demo.js&#39;);
?>

<body class="gray-bg">
  <p class="wrapper wrapper-content animated fadeInRight">
    <p class="row">
      <p class="col-sm-12">
        <p class="ibox float-e-margins">
           <?= backend\widgets\TitleBack::widget([&#39;title&#39;=>&#39;记录管理&#39;]) ?>
           
          <p class="ibox-content">  
            
          <?php
                   
            echo GridView::widget([
                &#39;dataProvider&#39; => $dataProvider,
                &#39;filterModel&#39; => $searchModel,
     
                &#39;columns&#39; => [
                  
                  [&#39;class&#39; => &#39;yii\grid\SerialColumn&#39;],
                  [&#39;class&#39; => &#39;yii\grid\CheckboxColumn&#39;],
                  &#39;title&#39;,
                  
                  [
                    
                        &#39;label&#39;=>&#39;下发时间&#39;,
                        &#39;attribute&#39;=>&#39;issued&#39;,
                     &#39;value&#39; => function ($data) {
                      return ArrayHelper::get_date_time($data->issued);
                    },                    
                  ],
                ]
             ]);
          
          ?>
            </p>
            </p>
          </p>
        </p>
      </p>

    </p>
  </p>
</body>
ログイン後にコピー

demo.js が最後に置かれます。まず、PatentDataBdSearch について説明します。これは、入力ボックスから送信されたデータを処理し、データベースにクエリを実行します。期間中、

//时间段筛选
    if($this->issued){
      $time= explode(&#39;~&#39;, $this->issued);
      $query->andFilterWhere([&#39;between&#39;, &#39;patent_data.issued&#39;, $time[0],$time[1]]); 
    }
ログイン後にコピー

demo.js はデータ検出を実装し、キャリッジ リターン操作をシミュレートします。

Yii はモデルにデフォルト値を追加するメソッドを実装します


以上がYii GridView は期間フィルタリング機能を実装しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!