выпадающий список быстрый поиск atk4 - PullRequest
1 голос
/ 28 ноября 2011

я пытаюсь заполнить выпадающее меню для быстрого поиска в 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, но когда я нажимаю кнопку быстрого поиска, ничего не происходит, кто-нибудь может мне помочь. Спасибо в

1 Ответ

0 голосов
/ 28 ноября 2011

Вы обнаружите, что Quicksearch - не более чем простая форма, которая применяет условие к вашей сетке при отправке.Теоретически, у вас может быть стандартная форма, выполняющая одно и то же:

$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']);

Классы «Фильтр» и «Быстрый поиск» помогают вам сохранять значения поиска, но вы не должны бояться посмотрите на их источник и создайте свой собственный класс QuickSearch, который может правильно применять параметры.

Возможно, использование фильтра в вашем случае лучше, чем быстрый поиск, из-за того, как обрабатывается "applyDQ":

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

...