Search code examples
autocompleteorbeonformbuilder

How to configure a dynamic autocomplete in Orbeon Forms?


I need to use a dynamic autocomplete based on ws rest to show suggestions of my field. I used it but it didn't work, it didn't update the list of suggestions. Example:

<fr:autocomplete
        id="control-3-control"
        appearance="minimal"
        labelref="@label"
        resource="http://127.0.0.1/api/ws/pays/all"
        bind="control-3-bind">

    <xf:label ref="$form-resources/control-3/label"/>
    <xf:hint ref="$form-resources/control-3/hint"/>

    <xf:alert ref="$fr-resources/detail/labels/alert"/>
    <xf:itemset ref="./_">
        <xf:label ref=".//libelle"/>
        <xf:value ref=".//id"/>
    </xf:itemset>
</fr:autocomplete>

And this is the screenshot:

enter image description here


Solution

  • Doing the "filtering" based on the value entered by users is the responsibility of the service the autocomplete is calling. However, it can't do this if you don't provide it with the current value of the field. For this, use {$fr-search-value} somewhere in the URL, e.g. something like:

    http://127.0.0.1/api/ws/pays/all?search={$fr-search-value}
    

    And of course, then your service needs to take the value of the search request parameter into account. The autocomplete component will automatically call the service again and again, as necessary as users type in the field.

    This allows you to search in a large dataset without having to return the whole set of possible values to Orbeon Forms.