# Dynamic Dependent Choices

**URL:** <https://community.glideapps.com/t/dynamic-dependent-choices/6234>\
**Category:** Ask for Help\
**Created:** [April 1, 2020, 9:59am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234 "2020-04-01T09:59:38Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![AsiaOffTheBoat](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/asiaofftheboat/32/1103_2.png) [@AsiaOffTheBoat](https://community.glideapps.com/u/AsiaOffTheBoat)\
**Post date:** [April 1, 2020, 9:59am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/1 "2020-04-01T09:59:38Z")

</div>

Hello to everyone!

I am familiar with how to create a dynamic dependent drop-down on sheets, up to maybe 2 levels. I need some help with how I can do that with Glide.

So for example, I’d like to create something like a name sorter let’s say.

Where in the first choice would be:  
Choose your favorite letter  
(drop down displays A to Z, 26 choices)  
Example: User chooses a Letter: B

The second drop down in my Form, will depend on the choice above.  
(drop down displays only names that start with the letter chosen, so anywhere between 5 to 150 choices let’s say depending on the letter chosen)  
Example: User sees the names Bob, Bill, Bean, Barry, Bing, Blue  
User chooses ‘Bing’

The third drop down should then depend on the previous choice again, showing all written variations of that name (anywhere from 1 to 10 varied spellings)  
User sees Bing, Beeng, Bng, Bhing, Bheeng l  
User chooses ‘Bng’

Once user clicks submit it should input in my sheets.

So far I’ve been able to do up to the first 2 drop-down t it seems like a long workaround. Is there anyone that can help?

---

<div class="post-metadata">

**Author:** ![Jaime](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jaime/32/72726_2.png) [@Jaime](https://community.glideapps.com/u/Jaime)\
**Post date:** [April 1, 2020, 11:30am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/2 "2020-04-01T11:30:20Z")

</div>

Something like this?

[gpmxj.glideapp.io](http://gpmxj.glideapp.io)

edit: I made this a copyable template, so feel free to copy

---

<div class="post-metadata">

**Author:** ![Jaime](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jaime/32/72726_2.png) [@Jaime](https://community.glideapps.com/u/Jaime)\
**Post date:** [April 1, 2020, 11:36am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/3 "2020-04-01T11:36:38Z")

</div>

It uses:  
(1) A column for the letters  
(2) A column for each of the letters with the names in each letter  
(3) A column for each of the names with the spelling/misspellings for each name

---

<div class="post-metadata">

**Author:** ![AlfredoZGC](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alfredozgc/32/4958_2.png) [@AlfredoZGC](https://community.glideapps.com/u/AlfredoZGC)\
**Post date:** [April 1, 2020, 3:11pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/4 "2020-04-01T15:11:15Z")

</div>

Hello Jaime, could you please explain this a little more?, I need to so something like this. I need a choice component to show countries and then a choice component to show cities of the country selected in the previous choice component.

I don’t understand how to set the visibility conditions, also could you please share your sheet?

Thank you

---

<div class="post-metadata">

**Author:** ![Jaime](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jaime/32/72726_2.png) [@Jaime](https://community.glideapps.com/u/Jaime)\
**Post date:** [April 1, 2020, 10:43pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/5 "2020-04-01T22:43:19Z")

</div>

@AlfredoZGC Hey mate, try copying this app I made and having a look at how the form is constructed [5owqo.glideapp.io](http://5owqo.glideapp.io)

---

<div class="post-metadata">

**Author:** ![AsiaOffTheBoat](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/asiaofftheboat/32/1103_2.png) [@AsiaOffTheBoat](https://community.glideapps.com/u/AsiaOffTheBoat)\
**Post date:** [April 2, 2020, 1:42am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/6 "2020-04-02T01:42:45Z")

</div>

Thank you!! Yes actually! I’ll try and experiment with this, but seems to be close. I’ll update once I’ve created it 🙂

---

<div class="post-metadata">

**Author:** ![AsiaOffTheBoat](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/asiaofftheboat/32/1103_2.png) [@AsiaOffTheBoat](https://community.glideapps.com/u/AsiaOffTheBoat)\
**Post date:** [April 2, 2020, 1:50am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/7 "2020-04-02T01:50:39Z")

</div>

Okay so your options are similar to what we tried to do and it works with small sets of data, i was wondering if it’s possible to do something in the sheets using filters?

Because there will be somewhere around 100+ choices for the first level, 5 to 100 per each choice on the 2nd level, and then 2 to 20 for each choice in the 2nd.

It seems like I could work it within sheets up to the 2nd, but not the third using filters 😬 but can’t seem to make it work in glide without looping

---

<div class="post-metadata">

**Author:** ![sardamit](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/sardamit/32/263_2.png) [@sardamit](https://community.glideapps.com/u/sardamit)\
**Post date:** [April 2, 2020, 3:51am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/8 "2020-04-02T03:51:08Z")

</div>

It takes a decent amount of time to sync the options (around 5 seconds), and it requires that you add a record for the letter first, and then edit the record for choices for name and spelling: [bw16i.glideapp.io](http://bw16i.glideapp.io)

---

<div class="post-metadata">

**Author:** ![AlfredoZGC](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alfredozgc/32/4958_2.png) [@AlfredoZGC](https://community.glideapps.com/u/AlfredoZGC)\
**Post date:** [April 2, 2020, 1:33pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/9 "2020-04-02T13:33:30Z")

</div>

@Jaime Thanks a lot for your help. Your solution worked perfect for me, It is true that populate each citie is tedious but it works fine. I hope glide implement some tool to to this easily in the near future.

Thanks!

---

<div class="post-metadata">

**Author:** ![Jaime](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jaime/32/72726_2.png) [@Jaime](https://community.glideapps.com/u/Jaime)\
**Post date:** [April 2, 2020, 10:00pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/10 "2020-04-02T22:00:17Z")

</div>

no worries mate 👍

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [April 2, 2020, 11:01pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/11 "2020-04-02T23:01:06Z")

</div>

Hi everyone!

Here you can see and test how create Dynamic Choices in cascade without using Google Sheets or visibility conditions (no tricks 🙂 )

It’s not a multiuser example but you can understand the process and idea so far. The real trick here is to use **Relations**

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/a/a5b2c5a99bd907996cbcdf870fcfb770e54b933b.png)  

> **[Multi Choices](https://dynchoices.glideapp.io/)**
>
> How create Dynamic Choices without Google Sheets

I hope it helps anyone

Saludos  
Gavp

---

<div class="post-metadata">

**Author:** ![Jeff\_Hager](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/jeff_hager/32/43_2.png) [@Jeff\_Hager](https://community.glideapps.com/u/Jeff_Hager)\
**Post date:** [April 3, 2020, 1:10am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/12 "2020-04-03T01:10:30Z")

</div>

I’ll throw my example in here too. Check out the Dynamic Filter in [https://concepts.glideapp.io/](https://concepts.glideapp.io/). It’s probably very similar to @gvalero’s example and uses relations. The only visibility I use is to show 1 of 2 maps based on if both choice components combined have matching related items. Each map uses a different relation.

---

<div class="post-metadata">

**Author:** ![AlfredoZGC](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alfredozgc/32/4958_2.png) [@AlfredoZGC](https://community.glideapps.com/u/AlfredoZGC)\
**Post date:** [April 6, 2020, 4:04pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/13 "2020-04-06T16:04:31Z")

</div>

Hello @gvalero, could you please explain this a little more? seems like a solution but I don’t understand how to do that

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [April 6, 2020, 4:33pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/14 "2020-04-06T16:33:28Z")

</div>

Hola @AlfredoZGC

Sorry, I didn’t see that I haven’t enabled the option to copy it as template

Let me delete some useless data/info to leave it available (I was testing other things in another tab and it can confuse more).

Saludos!  
Gavp

---

<div class="post-metadata">

**Author:** ![AlfredoZGC](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alfredozgc/32/4958_2.png) [@AlfredoZGC](https://community.glideapps.com/u/AlfredoZGC)\
**Post date:** [April 6, 2020, 4:35pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/15 "2020-04-06T16:35:16Z")

</div>

Gracias @gvalero

Saludos

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [April 6, 2020, 7:26pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/16 "2020-04-06T19:26:44Z")

</div>

@AlfredoZGC the rocket is ready!

---

<div class="post-metadata">

**Author:** ![AlfredoZGC](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alfredozgc/32/4958_2.png) [@AlfredoZGC](https://community.glideapps.com/u/AlfredoZGC)\
**Post date:** [April 6, 2020, 8:22pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/17 "2020-04-06T20:22:02Z")

</div>

@gvalero Thanks A lot, now I understand the Relations!

---

<div class="post-metadata">

**Author:** ![gvalero](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/gvalero/32/1037_2.png) [@gvalero](https://community.glideapps.com/u/gvalero)\
**Post date:** [April 10, 2020, 1:39am UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/18 "2020-04-10T01:39:50Z")

</div>

@AlfredoZGC

I modified my demo APP to support a **multiuser environment** (Sig-In User) as well [https://dynchoices.glideapp.io/](https://dynchoices.glideapp.io/)

 ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/4/490b22f9be4fb3251d2bc134c53a5cb89e2c0b89.png) ![image](https://us1.discourse-cdn.com/flex002/uploads/glideapps/original/2X/e/ea7cccd9d2a20a1b2b26ddc86a65886e42321b43.png)

I think it can be useful to you and anyone in future.

Saludos a todos!  
Gavp

---

<div class="post-metadata">

**Author:** ![AlfredoZGC](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/alfredozgc/32/4958_2.png) [@AlfredoZGC](https://community.glideapps.com/u/AlfredoZGC)\
**Post date:** [April 10, 2020, 4:00pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/19 "2020-04-10T16:00:19Z")

</div>

Thank you! I will check it out

---

<div class="post-metadata">

**Author:** ![Rasha](https://sea2.discourse-cdn.com/flex002/user_avatar/community.glideapps.com/rasha/32/4585_2.png) [@Rasha](https://community.glideapps.com/u/Rasha)\
**Post date:** [April 10, 2020, 7:53pm UTC](https://community.glideapps.com/t/dynamic-dependent-choices/6234/20 "2020-04-10T19:53:43Z")

</div>

Hi @gvalero - Thanks for sharing this!

I tried to emulate your setup, borrowing from both the public and private tabs to amend a form I already have in an app. It seems the Relation in public view that makes this work is not compatible in a form setting.

I’m looking to set up **two** choice components (you can see in a modified version of your app: [dynamicchoices2.glideapp.io](http://dynamicchoices2.glideapp.io) ), Top-level is **Products** , drill-down is **Box Size**. Once a user makes those selections (among others), they submit the form. Right now, in my app, I have form output on a completely separate sheet, not mixed in with product info.

Do you know of a workaround or am I overlooking something?

Thanks for your help!

Rasha

[Next page](https://community.glideapps.com/t/dynamic-dependent-choices/6234.md?page=2)
