Hi,
I am trying to create a simple PLM page, where i am facing issue in dependent selectbox,
where value are populating after i click submit.
Request help to check where i am going wrong.
import streamlit as st
import pandas as pd
st.set_page_config(layout="wide")
if "style_data" not in st.session_state:
st.session_state.style_data = []
if "product" not in st.session_state:
st.session_state.product = None
if "product_class" not in st.session_state:
st.session_state.product_class = None
def new_styles(brand, brick, product, product_class):
brand = st.session_state.brand
brick = st.session_state.brick
product = st.session_state.product
product_class = st.session_state.product_class
st.session_state.style_data.append(
{
"brand": brand,
"brick": brick,
"product": product,
"product_class": product_class
}
)
with st.form("new_styles", clear_on_submit=True):
brand_list = ["ABC"]
brick_list = ['', 'Kurta', 'Sarees', 'Chudidar Set', 'Chudidar']
product_list = {'Chudidar Set': ['Chudidar Set', 'Winter Chudidar Set'], 'Sarees': ['Sarees'],
'Kurta': ['Kurta', 'Winter Kurta'], 'Chudidar': ['Chudidar', 'Chudi']}
class_list = {'Chudidar Set': 'Set', 'Sarees': 'Set', 'Kurta': 'Top Wear', 'Chudidar': 'Bottom Wear'}
brand_col, brick_col, product_col, class_col = st.columns(4)
with brand_col:
brand = st.selectbox("BRAND:", brand_list, key="brand")
with brick_col:
brick = st.selectbox("BRICK:", brick_list, key="brick")
with product_col:
st.session_state.product = product_list.get(brick, "")
product = st.selectbox("PRODUCT:",st.session_state.product)
with class_col:
st.text("CLASS:")
st.text(class_list.get(brick, ""))
product_class = (class_list.get(brick, ""))
st.write(brand, brick, product, product_class)
st.form_submit_button("Submit", on_click=new_styles, args=(brand, brick, product, product_class))