1

mvcgrid でクイックサーチのドロップダウン メニューを作成しようとしています。コードは次のとおりです。

 $g = $this->add('MVCGrid');
 $g->setModel('materiale');
 $g->addPaginator(25);
 $s = $g->addQuickSearch(array('nome_mat'));

 $value_list = array(
        1=>'Granito',
        2=>'Marmo'
    );

 $s->addField('dropdown','tipo_mat','Tipo_mat: ')->setValueList($value_list);

クイック検索フォームにドロップダウン リストが表示されます。私のデータベース フィールドは tipo_mat ですが、クイック検索ボタンをクリックしても何も起きません。ありがとう

4

1 に答える 1

0

クイックサーチは、送信時にグリッドに条件を適用する単純なフォームにすぎないことがわかります。理論的には、同じことを行う標準フォームをそこに置くことができます。

$search = $g->add('Form',null,'quick_search',array('form/quicksearch','form'));
$search->addFiled('dropdown','tipo_mat')
    ->setValueList($value_list)
    ->set($_GET['tipo_mat']);
$search->addField('search','q')
    ->set($_GET['q']);

// Handle submit of form, reload grid with AjAX, pass values as arguments
if($search->isSubmitted()){
    $grid->js()->reload($search->getAllData())->execute();
}

// If values are passed, use them
if($_GET['q'])
    $grid->dq->where('name like','%'.$_GET['q'].'%');

if($_GET['tipo_mat'])
    $grid->dq->where('foo',$_GET['tipo_mat']);

「Filter」および「QuickSearch」クラスは検索値の保存に役立ちますが、それらのソースを調べて、パラメーターを適切に適用できる独自の QuickSearch クラスを作成することを恐れてはなりません。

おそらく、「applyDQ」の処理方法により、クイック検索よりもフィルターを使用する方が良いでしょう。

https://github.com/atk4/atk4/blob/master/lib/Filter.php#L62

于 2011-11-28T10:25:18.937 に答える