2016-08-09 151 views
1

Ich versuche, HTML-Formular-Eingabe zu verarbeiten. Ich habe eine CGI-Datei, aus der ich alle Daten sammeln möchte, einschließlich der Kontrollkästchen und Optionsfelder. Ich versuche, cgi.FieldStorage zu verwenden, aber etwas funktioniert nicht. HierPython-Prozess HTML/CGI Formular Eingabe

ist ein Beispiel dafür, was ich zu tun versucht:

form = cgi.FieldStorage() 
name = form.getvalue('sensitivity') 
print name 

Aber keiner zurückkehrt. Hier ist ein Ausschnitt der CGI-Datei:

if config_settings.settings[5] == '1': 

    print'''<html><label class="checkbox inline control-label"><input name="aWeight" value="1" type="checkbox" checked/></html>''' 
else: 
    print'''<html><label class="checkbox inline control-label"><input name="aWeight" value="1" type="checkbox"/></html>''' 
print'''<html><span> A-Weight &nbsp;&nbsp;&nbsp;</span></label></html>''' 

Dies stellt eine Checkbox in Abhängigkeit vom Inhalt eines XML-Tags in einer anderen Datei gesetzt wird 1 oder 0. Die XML-Datei und die Python-Datei zusammen fein arbeiten. Was ich versuche zu erreichen ist, die Daten von den Checkboxen zu sammeln, wenn ein Benutzer sie ändert.

Ich habe die diesen Code am Anfang meiner CGI-Skript:

<form class="well form-inline" method="post" action="/cgi-bin/process_setup.py"> 

Und ich, dass, obwohl dies würde mir erlauben/zu verarbeiten Sammle die von Daten mit cgi.FieldStorage aber es scheint nicht zu sein Arbeiten. Irgendein Rat?

+0

Bitte überprüfen Sie, dass Sie in Python cgi folgenden importieren: import cgi, cgitb –

+0

@SnehalParmar Hallo, Ja, ich habe getan, aber es ist für mich immer noch nicht funktioniert. –

Antwort

0

Ich glaube, Sie dieses print ("Content-type:text/html\r\n\r\n") für Python fehlen 3 und diese print "Content-type:text/html\r\n\r\n" für Python 2.

So möchten Sie den Benutzer verhindern, dass das Kontrollkästchen Wert ändern? Wenn ja, als hier ist ein Weg:

<label id='checky'><input type="checkbox" name="checky" onchange="changeCheck(this)" checked="" ></label> 
<script type="text/javascript"> 
function changeCheck (element) { 
    element.checked = !element.checked; 
} 
</script> 
+0

Dies war nur ein Ausschnitt. Das war schon da. Ich habe es funktioniert, aber danke, dass du dir die Zeit genommen hast, eine Antwort zu schreiben. –