Steve Holden <st***@holdenweb.com> wrote in message news:<6J07d.1812$gk.1795@okepread01>...
I think you're confusing checkboxes and radio buttons.
If you have ten different boxes that can be checked, each will usually
have a different name, so you can test them with data.getfirst("box1"),
data.getfirst("box2"), and so on.
While it's true that you can have several checkbox elements with the
same name, and that the CGI interface will give you a list of such
values, there's absolutely no need to do so and, as you have discovered,
it's positively unhelpful in most cases.
With radio buttons, you give each member of the set the same name in
your HTML and the browser submits the value of only the one that's been
checked (if one has).
regards
Steve
Hi Steve,
I did that with reference to this:
http://www.python.org/doc/current/lib/node404.html
I used checkboxes because I wanna the user to be able to select one or
more of the checkboxes, these checkboxes have the same "name" - qtype
and different "value". For radiobuttons, the user can only choose one
of the given radiobuttons which is not what I want. Sorry, I think I
didn't make myself clear enough.
The following is my script:
################################################## #############################
#!/usr/bin/env python
#Created on: 30/09/04
#Help from Lee Harr and Danny Yoo - Python Tutor
import sys, os
import cgi
import cgitb; cgitb.enable()
import pg
def form():
print """<form method="post" action="">
<p>
<input type=checkbox name="qtype" value="all" checked />
All<br />
<input type=checkbox name="qtype" value="project" />
Project<br />
<input type=checkbox name="qtype" value="date_string" />
Date<br />
<input type=checkbox name="qtype" value="blame" />
Blame<br />
<input type=checkbox name="qtype" value="notes" />
Notes<br /></p>
<p>Search by shot number:<br>
<input type=text name="qtext" value="" />
<input type="submit" value="SEARCH" />
<input type="reset" value="RESET" /><br />
</form>"""
print "Content-Type: text/html\n\n"
print "<head><title>Searching by using Shot
Number</title></head><body>"
if __name__ == "__main__":
data = cgi.FieldStorage()
if data:
qtype = data.getfirst('qtype')
qtext = data.getfirst('qtext','')
for qtype in data.getlist('qtype'):
print "You typed in Shot Number:", qtext
#Will take care of the security problem later...
username = os.environ.get('USER')
if username == None:
username = 'apache'
#Now, we can get to the database...
db = pg.connect("moncdata", user=username, passwd=None)
#This is the part that I'm not sure of...please help...
query = "select %(qtype)s from shot_descriptions where
shot_number=%(qtext)s", qtype, qtext
qresult = db.query(query)
listOfResults = qresult.dictresult()
print """<p>Example of pulling the list of dictionary
results apart.</p>"""
for record in listOfResults:
print "<p><table>"
for k in record.keys():
print '<tr>'
print '<td>key:</td> <td>', k, '</td>'
print '<td>value:</td><td>', record[k], '</td>'
print '</tr>'
print '</table></p>'
db.close()
#Somehow, this part didn't work too, when I didn't input a
value
#it doesn't show this msg. Please help me on this part too.
Thks.
else:
print "You have no enter a shot number!"
print "Please type a in shot number in order to perform a
search!"
else:
form()
print "</body></html>"
################################################## #############################
Thank you in advance for any help.
Shufen