我正在尝试为用户提供一个下拉菜单来选择数据库表。我在 db.py 中定义了几个表,我希望用户从下拉菜单中选择一个特定的表并插入条目。现在我使用 SQLFORM:
def index():
form=SQLFORM(db.selectedtable) #want to change the table name#
if form.process().accepted:
response.flash = 'form accepted'
elif form.errors:
response.flash = 'form has errors'
else:
response.flash = 'please fill out the form'
return dict(form=form)
我需要用户从显示数据库中所有可用表的下拉列表中选择“selectedtable”值。我不一定想从数据库中检索表值。我可以定义一个包含可用表的列表,下拉菜单可以从该列表中提取表名。到目前为止,我只发现 IS_IN_DB 可以自动创建下拉列表和 PluginDropdown() 但这不符合我的目的。如果有人能指导我以正确的方式处理这项任务,我将非常感激。
问候。
更新:
在安东尼的建议之后,我尝试了以下操作,因为我对 JS 不太熟悉。
{{extend 'layout.html'}}
{{select='NONE'}}
<form>
<select>
{{for item in TOOLS:}}
<option value="{{select=item}}">{{=item}}</option>{{pass}}
</select>
<input type="submit" value="Go!"/>
</form>
<h2>Input form</h2>
{{=form}}
<h2>{{=select}}</h2>
如您所见,这不能正常工作。我试图做的是让用户选择值来“选择”变量。但它不起作用。它总是获取 ITEMS 中的最后一个元素(此列表在 db.py 中定义)。我的下一个选择是调用另一个控制器函数,将用户选择的值作为参数传递。然后它可以使用传递的值准备表单并发送到视图以显示
<h2>Input form</h2>
{{=form}}
但我不确定如何将用户选择的值分配给参数,然后使用该参数值调用另一个控制器函数。如果您有任何建议,我可以如何修改它以获得用户选择的值,非常感谢。谢谢你。