我在一个网页上有两个表单,其内容分别在提交时存储在两个不同的数据库中。
这是包含两种不同形式的源代码:
<form method = "post">
To:<input type = "text" name = "to"><br>
Amt:<input type = "text" name = "to_amt"> <br>
<input type = "submit">
</form>
<br>
<form method = "post">
By:<input type = "text" name = "by"><br>
Amt:<input type = "text" name = "by_amt"> <br>
<input type = "submit">
</form>
现在,当我从网页提交表单时,我的相关处理程序将如何知道调用哪个表单的post方法?当我在main.py文件中提交一个表单的内容时,如何区分这两个表单?
PS:我不想将我的应用程序控件重定向到两个不同的URL,具体取决于我提交的表单。还有其他替代解决方案吗?
答案 0 :(得分:3)
添加一个隐藏字段,用于标识提交的表单,然后适当地分支您的代码。
带注释的表格:
<form method = "post">
To:<input type = "text" name = "to"><br>
Amt:<input type = "text" name = "to_amt"> <br>
<input type = "hidden" name = "form_name" value = "first">
<input type = "submit">
</form>
然后只需检查你的处理程序:
def post(self):
if self.request.get('form_name') == 'first':
# the first form was submitted
答案 1 :(得分:1)
您应该更改提交按钮,使其具有不同的文字(例如,&#34;保存&#34;以及&#34;取消&#34;)。然后在提交按钮中添加name
属性,并使用它来获取按钮上的文本。
<button type="submit" name="submit" value="Save">Save</button>
然后在app引擎中执行此操作以获取单击按钮的文本:
button = self.request.get("submit")
我使用的是button
而不是input
,因为前者适用于自动翻译网页的用户而后者则不适用。
这适用于两种完全不同的形式,当您有一个表单的两个提交按钮时也可以使用。
答案 2 :(得分:0)
对,
<input type="hidden" value="form1" />
您可以在每个表单中放置一个这样的字段,然后相应地在main.py中区分它们。