我在html文件中有多个表单,它们都调用相同的python cgi脚本。例如:
<html>
<body>
<form method="POST" name="form1" action="script.cgi" enctype="multipart/data-form">
....
</form>
...
<form method="POST" name="form2" action="script.cgi" enctype="multipart/data-form">
...
</form>
...
</body>
</html>
在我的cgi脚本中,我执行以下操作:
#!/usr/bin/python
import os
import cgi
print "content-type: text/html; charset=utf-8\n\n"
form = cgi.FieldStorate();
...
我无法从第二个获取数据。我曾尝试多次调用FieldStorage,但这似乎不起作用。所以我的问题是如何在同一个cgi脚本中访问不同的表单?
答案 0 :(得分:2)
你做不到。浏览器提交一个表单或另一个表单,但不是两者都提交。
如果您需要两种表单中的数据,请将表单合并为一个<form>
标记。
答案 1 :(得分:1)
首先,FieldStorage()
消耗标准输入,因此它只应实例化一次。
其次,只有提交表单中的数据才会发送到服务器。其他形式可以 也不存在。
因此,虽然您可以使用相同的cgi脚本来处理两个表单,但如果您需要同时处理两个表单,正如Martijn建议的那样,将表单合并为一个<form>
。