Form extension for Nette framework
- [ajax] (https://github.com/Olicek/form-selectize/blob/master/docs/en/ajax.md)
- Nette 2.2+
- jQuery 1.8+
- [Selectize] (https://github.com/brianreavis/selectize.js)
The best way to install olicek/form-selectize is using Composer:
$ composer require olicek/form-selectize
After installation server site, you have to install client site. The best way is use bower.
selectize.js from client-side and original
selectize.js and call somewhere function
Last step is enable the extension using your neon config
extensions: selectize: App\Form\Control\SelectizeExtension
selectize: mode: full # second mode is `select` for selection just 1 option create: on maxItems: null delimiter: #/ plugins: - remove_button valueField: id labelField: name searchField: name
Data in array for full mode
array (2) 0 => array (2) id => 1 name => "First item" 1 => array (2) id => 2 name => "Second item"
id is set as valueField and name as labelField and searchField in config.neon. You can use whatever, have to just set in config.neon or in addSelectize method. For example:
Data in array for select mode
Data for select mode are same as for SelectBox:
array (2) 1 => "First item", 2 => "Second item"
Default settings from config.neon
$form->addSelectize('tags', 'štítky', $arrayData);
custome settings in method first way (array)
$form->addSelectize('tags', 'štítky', $arrayData, ['create' => false, 'maxItems' => 3]);
custome settings in method first way (method)
$form->addSelectize('tags', 'štítky', $arrayData)->setValueField('slug')->delimiter('_');
dump($form->values->tags); // return "1"
In full mode it will return array with valueField values. If you create some new tag, it will in sub array with plain text.
array (3) 0 => "1" 1 => "2" new => array (1) 0 => "Third item"