multiple parameters in if statement...

K

Kun

I am trying to make an if-statement that will not do anything and print
'nothing entered' if there is nothing entered in a form. I have the
following code that does that, however, now even if I enter something
into the form, the code still outputs 'nothing entered'. This violates
the if statement and I am wondering what I did wrong.

if form.has_key("delete_id") and form["delete_id"].value != "" and
form.has_key("delete_date") and form["delete_date"].value != "" and
form.has_key("delete_purchasetype") and
form["delete_purchasetype"].value != "" and form.has_key("delete_price")
and form["delete_price"].value != "" and form.has_key("delete_comment")
and form["delete_comment"].value != "":
delete_id=form['delete_id'].value
delete_date=form['delete_date'].value
delete_purchasetype=form['delete_purchasetype'].value
delete_price=form['delete_price'].value
delete_comment=form['delete_comment'].value
else:
print "ERROR: Nothing entered!"
raise Exception
 
M

mensanator

Kun said:
I am trying to make an if-statement that will not do anything and print
'nothing entered' if there is nothing entered in a form. I have the
following code that does that, however, now even if I enter something

Yes, but did you enter everything?
into the form, the code still outputs 'nothing entered'.

The logic doesn't imply "nothing", it implies "not everything".
The else clause will execute if ANY item is not enetered.
This violates
the if statement and I am wondering what I did wrong.

if form.has_key("delete_id") and form["delete_id"].value != "" and
form.has_key("delete_date") and form["delete_date"].value != "" and
form.has_key("delete_purchasetype") and
form["delete_purchasetype"].value != "" and form.has_key("delete_price")
and form["delete_price"].value != "" and form.has_key("delete_comment")
and form["delete_comment"].value != "":
delete_id=form['delete_id'].value
delete_date=form['delete_date'].value
delete_purchasetype=form['delete_purchasetype'].value
delete_price=form['delete_price'].value
delete_comment=form['delete_comment'].value
else:
print "ERROR: Nothing entered!"
raise Exception
 
K

Kun

Kun said:
I am trying to make an if-statement that will not do anything and print
'nothing entered' if there is nothing entered in a form. I have the
following code that does that, however, now even if I enter something

Yes, but did you enter everything?
into the form, the code still outputs 'nothing entered'.

The logic doesn't imply "nothing", it implies "not everything".
The else clause will execute if ANY item is not enetered.
This violates
the if statement and I am wondering what I did wrong.

if form.has_key("delete_id") and form["delete_id"].value != "" and
form.has_key("delete_date") and form["delete_date"].value != "" and
form.has_key("delete_purchasetype") and
form["delete_purchasetype"].value != "" and form.has_key("delete_price")
and form["delete_price"].value != "" and form.has_key("delete_comment")
and form["delete_comment"].value != "":
delete_id=form['delete_id'].value
delete_date=form['delete_date'].value
delete_purchasetype=form['delete_purchasetype'].value
delete_price=form['delete_price'].value
delete_comment=form['delete_comment'].value
else:
print "ERROR: Nothing entered!"
raise Exception
How do I make this so that it only prints 'nothing entered' when none of
the fields are entered?
 
P

Peter Otten

Kun said:
Kun said:
I am trying to make an if-statement that will not do anything and print
'nothing entered' if there is nothing entered in a form. I have the
following code that does that, however, now even if I enter something

Yes, but did you enter everything?
into the form, the code still outputs 'nothing entered'.

The logic doesn't imply "nothing", it implies "not everything".
The else clause will execute if ANY item is not enetered.
This violates
the if statement and I am wondering what I did wrong.

if form.has_key("delete_id") and form["delete_id"].value != "" and
form.has_key("delete_date") and form["delete_date"].value != "" and
form.has_key("delete_purchasetype") and
form["delete_purchasetype"].value != "" and form.has_key("delete_price")
and form["delete_price"].value != "" and form.has_key("delete_comment")
and form["delete_comment"].value != "":
delete_id=form['delete_id'].value
delete_date=form['delete_date'].value
delete_purchasetype=form['delete_purchasetype'].value
delete_price=form['delete_price'].value
delete_comment=form['delete_comment'].value
else:
print "ERROR: Nothing entered!"
raise Exception
How do I make this so that it only prints 'nothing entered' when none of
the fields are entered?

def has_data(form, fields):
for field in fields:
if form.has_key(field) and form[field] != "":
return True
return False

fields = ["delete_id", "delete_date", "delete_purchasetype", "delete_price",
"delete_comment"]

if not has_data(form, fields):
print "nothing entered"

Just testing for

if field in form: ...

instead of

if form.has_key(field) and form[field] != "": ...

is probably sufficient if form is a cgi.FieldStorage.

Peter
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top