multiple parameters in if statement...

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Kun

    #1

    multiple parameters in if statement...

    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("d elete_id") and form["delete_id"].value != "" and
    form.has_key("d elete_date") and form["delete_dat e"].value != "" and
    form.has_key("d elete_purchaset ype") and
    form["delete_purchas etype"].value != "" and form.has_key("d elete_price")
    and form["delete_pri ce"].value != "" and form.has_key("d elete_comment")
    and form["delete_comment "].value != "":
    delete_id=form['delete_id'].value
    delete_date=for m['delete_date'].value
    delete_purchase type=form['delete_purchas etype'].value
    delete_price=fo rm['delete_price'].value
    delete_comment= form['delete_comment '].value
    else:
    print "ERROR: Nothing entered!"
    raise Exception
  • mensanator@aol.com

    #2
    Re: multiple parameters in if statement...


    Kun wrote:[color=blue]
    > 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[/color]

    Yes, but did you enter everything?
    [color=blue]
    > into the form, the code still outputs 'nothing entered'.[/color]

    The logic doesn't imply "nothing", it implies "not everything".
    The else clause will execute if ANY item is not enetered.
    [color=blue]
    > This violates
    > the if statement and I am wondering what I did wrong.
    >
    > if form.has_key("d elete_id") and form["delete_id"].value != "" and
    > form.has_key("d elete_date") and form["delete_dat e"].value != "" and
    > form.has_key("d elete_purchaset ype") and
    > form["delete_purchas etype"].value != "" and form.has_key("d elete_price")
    > and form["delete_pri ce"].value != "" and form.has_key("d elete_comment")
    > and form["delete_comment "].value != "":
    > delete_id=form['delete_id'].value
    > delete_date=for m['delete_date'].value
    > delete_purchase type=form['delete_purchas etype'].value
    > delete_price=fo rm['delete_price'].value
    > delete_comment= form['delete_comment '].value
    > else:
    > print "ERROR: Nothing entered!"
    > raise Exception[/color]

    Comment

    • Kun

      #3
      Re: multiple parameters in if statement...

      mensanator@aol. com wrote:[color=blue]
      > Kun wrote:[color=green]
      >> 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[/color]
      >
      > Yes, but did you enter everything?
      >[color=green]
      >> into the form, the code still outputs 'nothing entered'.[/color]
      >
      > The logic doesn't imply "nothing", it implies "not everything".
      > The else clause will execute if ANY item is not enetered.
      >[color=green]
      >> This violates
      >> the if statement and I am wondering what I did wrong.
      >>
      >> if form.has_key("d elete_id") and form["delete_id"].value != "" and
      >> form.has_key("d elete_date") and form["delete_dat e"].value != "" and
      >> form.has_key("d elete_purchaset ype") and
      >> form["delete_purchas etype"].value != "" and form.has_key("d elete_price")
      >> and form["delete_pri ce"].value != "" and form.has_key("d elete_comment")
      >> and form["delete_comment "].value != "":
      >> delete_id=form['delete_id'].value
      >> delete_date=for m['delete_date'].value
      >> delete_purchase type=form['delete_purchas etype'].value
      >> delete_price=fo rm['delete_price'].value
      >> delete_comment= form['delete_comment '].value
      >> else:
      >> print "ERROR: Nothing entered!"
      >> raise Exception[/color]
      >[/color]
      How do I make this so that it only prints 'nothing entered' when none of
      the fields are entered?

      Comment

      • Peter Otten

        #4
        Re: multiple parameters in if statement...

        Kun wrote:
        [color=blue]
        > mensanator@aol. com wrote:[color=green]
        >> Kun wrote:[color=darkred]
        >>> 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[/color]
        >>
        >> Yes, but did you enter everything?
        >>[color=darkred]
        >>> into the form, the code still outputs 'nothing entered'.[/color]
        >>
        >> The logic doesn't imply "nothing", it implies "not everything".
        >> The else clause will execute if ANY item is not enetered.
        >>[color=darkred]
        >>> This violates
        >>> the if statement and I am wondering what I did wrong.
        >>>
        >>> if form.has_key("d elete_id") and form["delete_id"].value != "" and
        >>> form.has_key("d elete_date") and form["delete_dat e"].value != "" and
        >>> form.has_key("d elete_purchaset ype") and
        >>> form["delete_purchas etype"].value != "" and form.has_key("d elete_price")
        >>> and form["delete_pri ce"].value != "" and form.has_key("d elete_comment")
        >>> and form["delete_comment "].value != "":
        >>> delete_id=form['delete_id'].value
        >>> delete_date=for m['delete_date'].value
        >>> delete_purchase type=form['delete_purchas etype'].value
        >>> delete_price=fo rm['delete_price'].value
        >>> delete_comment= form['delete_comment '].value
        >>> else:
        >>> print "ERROR: Nothing entered!"
        >>> raise Exception[/color]
        >>[/color]
        > How do I make this so that it only prints 'nothing entered' when none of
        > the fields are entered?[/color]

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

        fields = ["delete_id" , "delete_dat e", "delete_purchas etype", "delete_pri ce",
        "delete_comment "]

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

        Just testing for

        if field in form: ...

        instead of

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

        is probably sufficient if form is a cgi.FieldStorag e.

        Peter

        Comment

        Working...