Dynamically populating select input fields using jquery $.load and twig template EDIT: the below code now works!

I have two select inputs, the choice of 1 should populate the second. I have an external twig file (data.twig) (MAKE SURE TO PUT THIS IN YOUR TEMPLATES FOLDER) that loads the options of the second field.

 {% set allBrands = craft.entries()
            .section('brands')
            %}

{% set brands = allBrands.all() %}      

&lt;div class="modal-page-display w-container"&gt;
  &lt;div class="modal-page-wrapper text-left" style="min-width: 500px;"&gt;
  &lt;h3 class="heading"&gt;test form&lt;/h3&gt;

    &lt;select id="first-choice" class="select-1"&gt;
        &lt;option selected value="base"&gt;Please Select&lt;/option&gt;
        {% for entry in brands %}
        &lt;option value="{{ entry.brandName }}"&gt;{{ entry.brandName }}&lt;/option&gt;
        {% endfor %}
    &lt;/select&gt;



    &lt;select id="second-choice" class="select-1"&gt;
        &lt;option&gt;Please choose from above&lt;/option&gt;
    &lt;/select&gt;

  &lt;/div&gt;
&lt;/div&gt;


Then for the javascript:

$(function() {

        $("#first-choice").change(function() {
          $("#second-choice").load("{{ siteUrl }}data.twig?brand=" + $("#first-choice").val());
        });

    });


And lastly the data.twig:

{% set brand = craft.request.getParam('brand') %}

{% set allModels = craft.entries()
                .section('brands')
                .brandName(brand)
                %}
{% set models = allModels.all() %}  
{% for entry in models %}   
&lt;option&gt;{{ entry.modelName }}&lt;/option&gt;
&lt;option&gt;testing&lt;/option&gt;
{% endfor %}
Your code looks fine and worked for me when testing locally. However it could be failing due to the fact that you're not url-encoding the parameter before you send the request. If the values contain spaces or other special characters, for example, this would make it fail. To fix that issue, try using encodeURI() like this:

$("#second-choice").load("{{ distUrl }}data.twig?brand=" + encodeURI($("#first-choice").val()));


This works for me when testing with values that contain spaces at least.