我正在使用python 2.7和CGI。
我在html中有一个带有多个输入(文本)的表单,其名称如下:
输入名称在html页面中的顺序正确。 目标是将每个" Ex"通讯员" Commande"。 之后,我想将输入的值放入xml文件中。
为此,我使用form.keys()
函数,但FieldStorage中返回的值的顺序似乎是随机的!
如何订购表单返回的值?
我坚持了好几个小时,如果有人可以提供帮助,那将是非常好的!
这是我的代码,只打印键(没有所有xml工作):
form.html:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Create TP</title>
<script type="text/javascript">
var i = 0;
function addKid()
{
if (i < 20)
{
var newRow = document.createElement('tr');
newRow.innerHTML = '<td> <input type="text" name="Ex_'+i+'" size="50"><td> <input type="text" name="Commande_'+i+'" size="200"></td><td><input type="button" id="add_kid()" onClick="addKid()" value="+" /><input type="button" value="-" onclick="removeKid(this.parentNode)"></td>';
document.getElementById('kids').appendChild(newRow);
i++;
}
}
function removeKid(element)
{
document.getElementById('kids').removeChild(element.parentNode);
i--;
}
</script>
</head>
<body>
<div>
<form method="post" action="test.cgi">
Nom du TP :
<input id="Text1" type="text" name="nomTP" />
<br /><br /><br /><br />
<table id="kids">
<tr>
<th>Name exercice</th>
<th>Commande</th>
<th></th>
</tr>
<!--<tbody > -->
<tr >
<td >
<input type="text" name="Ex" size="50">
</td>
<td>
<input type="text" name="Commande" size="200">
</td>
<td>
<input type="button" id="add_kid" onClick="addKid()" value="+" />
</td>
</tr>
<!--</tbody> -->
</table>
<div style="height: 23px; width: 118px; margin-left : 69px; margin-top: 15px">
<input id="valider" type="submit" value="Valider" />
</div>
</form>
</div>
</body>
</html>
test.cgi:
#! c:\Program Files (x86)\Python27\python.exe
# -*- coding: utf-8 -*-
import cgitb, cgi, sys
sys.stderr = sys.stdout
cgitb.enable()
print "content-type : text/html\n\n";
print
form = cgi.FieldStorage()
TP = form.getvalue("nomTP")
entete = """<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>Creation TP</title></head><body>"""
pied_page = """</body></html>"""
print entete
for key in form.keys():
#variable = str(key)
print key
#if variable.startswith( 'Ex' ):
#do something
#if variable.startswith( 'Commande' ):
#do something
print pied_page