Dynamic Selects is a ProcessWire commercial module that enables the creation of dynamically related/dependent ajax-driven chained dropdowns for display and storage of multiple types of data. The module can be used both in the front- (display only) and backend (display and storage of data).
The values that can be displayed are: page field values, user property values, templates (label|name) and field names (label|name). In the case of field values and user properties, the following core ProcessWire Fieldtypes are supported as data sources:
FieldtypeDatetime, FieldtypeEmail, FieldtypeFile, FieldtypeFloat, FieldtypeImage, FieldtypeInteger, FieldtypeOptions, FieldtypePage, FieldtypePageTitle, FieldtypePageTitleLanguage, FieldtypeText, FieldtypeTextLanguage and FieldtypeURL.
In the case of images or files, the names of the files will be displayed as options for selection in the dropdowns.
Setting up Dynamic Selects is very easy. With minimal effort, site developers can set up simple or complex chained selects for use by site editors. By making a selection in a trigger dropdown, via ajax, values are fetched and dynamically populate options in the dependent select. In turn, making a selection in the now populated select triggers the same action further down in a dependent select. The module only uses/stores ID references to selected options in the selects meaning the most current/up-to-date data will always be displayed in the selects.
There is no limit to the number of selects/dropdowns that can be defined per each Dynamic Selects field.
For frontend use, the purpose of the module is limited to fetching, filtering and displaying data/results in a secure, easy and convenient way. For instance, displaying the location of a particular venue or facility from a myriad of choices. Beyond this, what you do with the filtered data is up to you the developer. The possibilities are literally endless. Expanding Dynamic Selects capabilities is easy. For instance, you can easily incorporate it into your forms allowing users to make choices and submit these for processing and storage server-side.
Dynamic Selects is a useful module in any developer's toolbox for multiple use cases.
- Easily create powerful ajax-driven cascading/chained selects/dropdowns for use in front- or backend.
- Unlimited number of select dropdowns.
- Data-mapping made easy thanks to multiple possible combinations of data relationships, triggers and sources.
- Mutlipe data relationships to chose from.
- ID-based data referencing ensures your data values always stay fresh.
- Remote and local caching to speed up data access and reduce ajax-requests to server.
- User-friendly and easy to set up.
An overview of the changes between Dynamic Selects versions can be found here.