Projekt

Allgemein

Profil

Herunterladen (1,92 KB) Statistiken
| Zweig: | Markierung: | Revision:
[%#-
Autocompletion

This template enables auto completion for input fields.
Calling Syntax is:

INCLUDE 'generic/autocomplete', [
{ SPEC_1 },
{ SPEC_2 },
...
]

where SPEC is a hash containing the following keys:

script : the script that is called for autocompletion, defaults to the invoking script
action : action in the ajax script, defaults to 'ajax_autocomplete'
selector : a jquery selector, specifying the input fields
column : specifies the column that is represented by the bound field. typically description or name.

TODO FIELDS:
- addition fields like type, vc etc.
- additional dependencies, see jquery.autocomplete documentation
- hook function on select, again see jquery documentation

a simple SPEC would look like this:

{ selector => '#description', column => 'description' }
# field with id="description" should be autocompleted with descriptions

{ script => 'ic.pl', selector => '[name^="partnumber_"]', column => 'partnumber' }
# let ic.pl autocomplete by partnumbers, bind this to all fields where the name begins with "partnumber_"



The Backend Side

The called function will recieve the queried string as hashkey "q" in form, as well as every other param specified here.
It should generate a generic ajax header (see form), followed by newline separated list of possible completion values.

%]
<script type='text/javascript'>
[%- FOREACH token = AUTOCOMPLETES %]
[%- DEFAULT token.script = script %]
[%- DEFAULT token.action = 'ajax_autocomplete' %]
[%- DEFAULT token.INPUT_ENCODING = 'utf8' %]
[%- token.url = token.script
_ '?action=' _ token.action
_ '&INPUT_ENCODING=' _ token.INPUT_ENCODING %]
[%- SET token.url = token.url _ '&column=' _ token.column IF token.column %]
$(document).ready( $('[% token.selector %]').autocomplete('[% token.url %]'));
[%- END %]
</script>
(1-1/38)