我正在用流光建造表单。我使用session_state来控制要出现的问题的哪个部分。这是第1节,但有超过10节,不是所有的部分都会被问到,这是基于你如何填写最后一节。
if 'section' not in st.session_state:
st.session_state['section'] = 'section 1'
if st.session_state['section'] == 'section 1':
with st.form(key='Scoresheet', clear_on_submit=False):
st.markdown("""
### ScoreSheet
Repeatable sheet for Grading tech tickets
""")
tech_name = st.text_input("Tech Name")
date = st.date_input("Date")
ticket_number = st.text_input("Ticket Number")
phone_availability = st.radio("Phone Availability (Weekly)",['<10','20','30','40','50','60','70','80','90','100','N/A Leads // Special Project'])
outage = st.radio("Large Outage",['TSP','Large Outage','Protedcted Sonet','Protected Wave','Point to Point SONET','Point to Point Wave'])
next1 = st.form_submit_button(label='Next')
if next1:
st.session_state['Data1'] = {'tech_name': tech_name, 'date': date, 'ticket_number': ticket_number, 'phone_availability': phone_availability, 'outage': outage}
if outage in ['TSP']:
st.session_state['section'] = 'section 2'
elif outage in ['Large Outage']:
st.session_state['section'] = 'section 3'
elif outage in ['Protedcted Sonet','Protected Wave']:
st.session_state['section'] = 'section 4'
elif outage in ['Point to Point SONET','Point to Point Wave']:
st.session_state['section'] = 'section 5'当您单击submit时,它会将下一节的表单呈现在现有窗体之下。每个部分都会发生这种情况,除非您单击问题单的菜单项,在该菜单项中只使用当前部分重新构建页面。
我想要它清除前一节,只是显示当前的部分。
发布于 2022-03-04 23:34:39
为表单使用占位符,一旦提交空它。
placeholder = st.empty()
with placeholder.form(key=str(num)):
...
if st.form_submit_button():
placeholder.empty()检查this。
发布于 2022-07-28 08:19:09
提示:使用st.session_state保存数据
代码示例
import streamlit as st
from datetime import datetime
def my_callback():
print(f"curdate: {datetime.now()} first: {st.session_state.value1} sec: {st.session_state.value2}")
with st.form('my_form',clear_on_submit=True):
st.radio(label='♀️ part1:', options=[
'解决', '未解决', '未完全解决'], horizontal=True,
key='value1')
error_list = ['答非所问', '推荐错误', '推荐不准确', '回答不详细', '信息更新不及时']
not_saf_reason = st.radio(
label='♀️ part2:', options=error_list, horizontal=True,key='value2')
submit_button = st.form_submit_button(
label=' 点我提交', on_click=my_callback
)st.session_state
part1保存到value1,这是st.session_state
part2到value2中的变量,这是st.session_state
st.session_state
获取value1和value2的回调函数。
https://stackoverflow.com/questions/71354250
复制相似问题