Python CGI FieldStorage - 订购密钥

时间:2016-03-13 12:21:30

标签: python html cgi

我正在使用python 2.7和CGI。

我在html中有一个带有多个输入(文本)的表单,其名称如下:

  • Ex Commande
  • Ex_1 Commande_1
  • Ex_2 Commande_2
  • 等...

输入名称在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 :&nbsp;&nbsp;&nbsp;
                    <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

0 个答案:

没有答案