Vibha's data and monitoring platform · vibha.org

Build a form with dropdown lists, step by step

One complete, start-to-finish example: a two-question form — State, then District— where picking a state narrows the district dropdown down to just that state's districts. Every screen shown below is the same screen you will actually use; nothing here is simplified away.

What we are building, and why

A school-visit form needs to know exactly which district a visit happened in. We want two dropdowns: pick a state first, and the district dropdown then only shows districts that belong to that state — instead of a single unfiltered list of all 766 districts in the country to scroll through.

What the respondent will see

State

Select an option · dropdown list: states

District

Select an option · cascades from State

Cascading

This takes four stages: create the parent list, create the child list, upload data into both, and bind the two form questions to them. Each is shown below with the real screen you will see.

Stage 1 — Create the parent list: States

  1. 1Look for Custom Drop Down in the sidebar and click New list.
  2. 2Name it “States”. Leave Parent list set to Nothing — this is a top-level list, since States is the top of this chain and has no parent of its own.
  3. 3Click Create list.

Stage 2 — Create the child list: Districts

  1. 1Click New list again. Name it “Districts”.
  2. 2This time, set Parent list to States — the list you just created. This is the one setting that turns Districts into a dependent dropdown instead of a plain, independent one.
  3. 3Click Create list.

Stage 3 — Upload the data

Start with the parent, States, since Districts will need to refer to it. Open the States list, click Upload CSV, and upload a simple two-column file — a label and a value for each state.

IdNameParent listOptions
statesStates—4
districtsDistrictsStates0

Now open Districts and upload its file. Because Districts cascades from States, a parent valuecolumn is required and is recognized automatically from the file's headers. Each row must name the state it belongs to, using the state's value (e.g. AP) — not its label (“Andhra Pradesh”).

Stage 4 — Bind the form's two questions

Open your form in the builder. Add a Select an optionquestion labelled “State”, open its settings, and switch from Type your own options to Choose from a list, then pick States.

Type your own optionsChoose from a list
Which listStates · 4 items

Add a second Select an optionquestion below it labelled “District”, and point it at the Districts list the same way. Because Districts cascades from States, a new field appears: Narrow down by an earlier answer. Set it to the State question you just added.

Type your own optionsChoose from a list
Which listDistricts · 9 items
Narrow down by an earlier answerStateThis list narrows down based on States. Districts will only show entries under whichever state was picked above.

The result

Preview the form. The State dropdown shows all four states. Pick “Andhra Pradesh”, and the District dropdown — previously showing “Choose State first” — now lists only Visakhapatnam and Krishna. Change State to “Nagaland”, and District reloads to show only Kohima, clearing whatever was previously selected. Nobody filling out this form can end up submitting a district that does not belong to the state they picked.

Finished form

State

Select an option · dropdown list: states

District

Select an option · cascades from State

Cascading

From here, the same pattern extends naturally: add a Block list cascading from Districts, then a School list cascading from Block, for a four-level chain — or add a lookup rule that auto-fills a UDISE code the moment a school is picked. Both are covered in Cascading and lookups.