---
name: "Webapp.autoFill"
section: "3kaya"
platform: "linux"
package: "kaya"
version: "0.4.4-6.2"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/Webapp.autoFill"
---

# Webapp.autoFill(3kaya)

Automatically fill a HTML form

## NAME

Webapp::autoFill - Automatically fill a HTML form

## SYNOPSIS

**Void autoFill(** *ElementTree form, DataSource mainvars, Dict\<String, \[String\]\>  extravars=Dict::new()* **)**

## ARGUMENTS

**form** The form element (or a subset of that if you only wish to automatically fill a part of the form.

**mainvars** The data source to use (e.g. **DataPost**  )

**extravars** An optional dictionary mapping keys to lists of values, to allow a form to be automatically filled from a database. You may or may not need to use **DataNone**  as your main data source in this case.

## DESCRIPTION

Automatically fill a HTML form based on data from a particular data source. This makes it easy to construct web forms with error handling - see the webapp tutorial ⟨http://kayalang.org/tutorial/web/webapp⟩ for more information.

-

   ElementTree OnHello(Int dummy) {\
        div = anonymousBlock; // we create this temporarily.\
        fname = incomingValue("fname",DataPost);\
        lname = incomingValue("lname",DataPost);\
        if (fname != "" && lname != "") {\
            p = addParagraph(div,"Hello "+fname+" "+lname);\
            return p;\
        } else {\
            form = HelloForm();\
    // if they entered one of first and last name, make sure it's still in the form\
            autoFill(form,DataPost);\
            return form;\
        } \
    }

   ElementTree helloForm() {\
        parent = anonymousBlock;\
        form = addLocalForm(parent);\
        f1 = addFieldset(form,"Who are you?");\
        input = addLabelledInput(f1,"Your First Name",InputText,"fname","",0);\
        input = addLabelledInput(f1,"Your Last Name",InputText,"lname","",0);\
        submit = addLocalControlInput(f1,"Say hello",OnHello,1);\
        return form;\
    }

## AUTHORS

Kaya standard library by Edwin Brady, Chris Morris and others (kaya@kayalang.org). For further information see http://kayalang.org/

## LICENSE

The Kaya standard library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License (version 2.1 or any later version) as published by the Free Software Foundation.

## RELATED

**WebCommon.DataSource (3kaya)**
