Maslosoft Framework Documentation
Flexible Application Foundation
Search Box
Search box is simply an input with action called on change. This can be wired up to other component to provide full text searching over data. This also automatically change URL to reflect searched query.
Use $action parameter to bind this to other components like in
Grid View widget.
Using default parameters will produce following input:
echo SearchBox::widget();
Example of using $action parameter combined with grid view search action.
Parameter $value initializes value of input on first page load.
Notice that initial value is not automatically set, it must be provided
by cooperating component.
By using ActionUrl, we can instruct SearchBox to
call JavaScript action search.
In this example the built-in grid searching is disabled to show example of attaching searching to different widget.
Prepare grid view widget instance but do not output it yet. We will
use grid widget instance as parameter for ActionUrl used in SearchBox widget
configuration.
$grid = GridView::widget([ 'dataProvider' => new DataProvider(ExampleUser::class, [ 'pagination' => [ 'size' => 10 ] ]), 'show' => [ 'searching' => false ], 'columns' => [ 'firstName', 'lastName', 'email', 'active' ] ]);
The actual code and example of SearchBox attached to grid view. Typing
text into search input will trigger the search
method in JavaScript side of grid view widget. The search
method in turn will call ajax request for server side widget action
with method named actionSearch.
SearchBox is outputted first, so it appeared above grid
view which is echoed later.
| First name | Last name | Activated | |
|---|---|---|---|
echo SearchBox::widget([ 'action' => new ActionUrl($grid, 'search'), 'value' => 'John', 'iconPlacement' => Placement::Right ]); echo $grid;