On Wed, 7 Jul 2004 10:06:25 +0200, Torsten Roehr <[EMAIL PROTECTED]> wrote:
> "Curt Zirzow" <[EMAIL PROTECTED]> wrote in message
> news:[EMAIL PROTECTED]
> > * Thus wrote Torsten Roehr:
> > > > >
> > > > > How do you check which button was pressed (read: which action should
> be
> > > > > performed) when not relying on this?
> > > > >
> > > >
> > > > The button is generally *not* sent by the browser if you hit enter
> > > > instead of submit. This *will* happen, so you have to deal with it.
> > > >
> > > > If you want to knwo what button was pressed, you have to have
> > > > different button names or values and check them. A button is just
> > > > another form element that is submitted.
> > >
> > > I believe you are wrong here. I just checked it in IE5 and Opera 7.23.
> > > Submitting a form by hitting enter IS THE SAME as pressing a submit
> button
> >
> > no, it is simply unpredictable to what will happen, my test case...
> >
> >   Site: google.com
> >   Browsers: IE6, Opera, Firefox, netscape4
> >   Test: Enter 'asdf' and hit enter.
> >
> >   Results:
> >   Opera and firefox sent in the url &btnG=Search, signifying that
> >   the first button has been submited.
> >
> >   IE6 and netscape4, don't have that parameter in the url.
> >
> > In fact, google *had* code that checked for the btnG value and if it
> > exsited it would display a tip about being able to simply hit
> > enter. They no longer do that since it is unreliable.
> >
> > >
> > > So from my point of view a form cannot be submitted without at least one
> of
> > > the submit button values ending in POST.
> >
> > And if it did,  which one does it send? If there are multiple
> > buttons on a page, does it send the one closest to the focused
> > item? or does it send the very first one it finds no matter how the
> > page is visually layed out?
> >
> > >
> > > What do you think?
> >
> > Never rely on button values to decide on a course of action.
> 
> Dear Curt and Justin,
> 
> thanks for putting so much effort into this topic. Then how do YOU handle
> this? How do you set up your form actions and how do you check them
> regardless of the submit buttons?
> 

To know if a form has been submitted, I generally use a hidden
variable (usually called "submitted"). This lets me easily know if the
form was submitted, even if it had no values in any other fields. I
means I don't have to rely on user input or button-pushing.

If you *do* have multiple buttons, you should still have the
"submitted" hidden field, but also check the button values. If no
button values are present, you either have to assume that the suer
meant one of them (normal submit maybe?) or show an error and have the
user click the right button.

I've frequently used two buttons with the same name that have the
values "yes" and "no". If the user submits the form without pressing a
button, I assume "yes". In other words,
if(isset($_REQUEST['submitted']) && $_REQUEST['confirm'] != 'no') {
  //process form data
}

-- 
DB_DataObject_FormBuilder - The database at your fingertips
http://pear.php.net/package/DB_DataObject_FormBuilder

paperCrane --Justin Patrin--

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to