Hi,

 

I’m trying to create a tool where there are several select parameters whose choices are determine by the previous parameter(s). I have a toy example with three parameters: Category, Food, and Prep method. Depending on the chosen Category, only certain Foods are shown, which in turn determines which Prep methods are available.

 

I’m trying to use the <options> tag with the “from_file” attribute. I have one column per parameter and one row per valid combination.

 

My problem is that the front end can get into a state where a certain valid combinations will be unselectable. In the example below, I can never select “Fruit”, “Kiwi”, and “Raw”. When I change the 1st select, the values for the 2nd select are loaded, but the values for the 3rd select cannot be updated. This is particularly problematic if there is only one choice for the 2nd select, because I cannot get it’s “onchange” handler to fire (so the 3rd select is always empty).

 

In my case, it would be nice if the first value of the 2nd select is chosen as a default, and the 3rd select is populated accordingly.

 

Any help would be appreciated. Perhaps I’m not using these features as intended, but it seemed like a natural application.

 

Thanks,

Josh

 

My data file looks like:

Meat    Chicken Fried

Meat    Chicken Grilled

Meat    Beef    Grilled

Meat    Beef    Stir-fried

Veg     Carrot  Boiled

Veg     Fennel  Raw

Fruit   Kiwi    Raw

 

And my tool’s <inputs> section is:

 

  <inputs>

    <param name="paramA" type="select" label="Category">

      <options from_file="test_select_options.txt">

        <column name="value" index="0"/>

        <column name="name" index="0"/>

        <filter type="unique_value" name="unique" column="0"/>

      </options>

    </param>

 

    <param name="paramB" type="select" label="Food" >

      <options from_file="test_select_options.txt">

        <column name="value" index="1"/>

        <column name="name" index="1"/>

        <filter type="unique_value" name="unique" column="1"/>

        <filter type="param_value" ref="paramA" name="A" column="0"/>

      </options>

    </param>

 

    <param name="paramC" type="select" label="How prepared">

      <options from_file="test_select_options.txt">

        <column name="value" index="2"/>

        <column name="name" index="2"/>

        <filter type="param_value" ref="paramA" name="A" column="0"/>

        <filter type="param_value" ref="paramB" name="B" column="1"/>

      </options>

    </param>

 

  </inputs>