By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
457,887 Members | 1,246 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 457,887 IT Pros & Developers. It's quick & easy.

2 submit button calling one page

P: n/a
I need to have 2 submit buttons in one form calling the same page. I just
need to know which was used. Being able to pass a hidden form input for
each would be ideal. How can I do this??

Thanks!,Adrian
Jul 20 '05 #1
Share this Question
Share on Google+
6 Replies


P: n/a
Adrian wrote:
I need to have 2 submit buttons in one form calling the same page. I just
need to know which was used.


<input type="submit" name="s" value="1">
<input type="submit" name="s" value="1">

<?php

print $_REQUEST['s'];

?>

No need for JavaScript.
--
David Dorward <http://dorward.me.uk/>
Jul 20 '05 #2

P: n/a
On Tue, 20 Jan 2004 22:56:04 +0000, David Dorward <do*****@yahoo.com>
wrote:
Adrian wrote:
I need to have 2 submit buttons in one form calling the same page. I
just
need to know which was used.


<input type="submit" name="s" value="1">
<input type="submit" name="s" value="1">

<?php

print $_REQUEST['s'];

?>

No need for JavaScript.


I assume that the values for the two buttons were supposed to be different?

To the OP: If the submit button[1] has a name and value, that pair will be
sent with the rest of the data on submission. If there is more than one
button, only the clicked button will have its name/value pair sent. This
will allow you to check which button was pressed server-side.

If you need to check before the form is sent, I think the only way is to
place onclick intrinsic events on the button elements. However, cancelling
the click event might not (I can't remember) stop the form submission, if
that was your intention.

Mike
[1] Either <input ... type="submit"> or <button ...
type="submit">...</button>

--
Michael Winter
M.******@blueyonder.co.invalid (replace ".invalid" with ".uk" to reply)
Jul 20 '05 #3

P: n/a
That worked great, thanks. I should have mentioned but I need to do it with
type="image" and it does not work the same. Any work arounds?

<input type="image" SRC="/image/shipcomplete.gif" border="0" alt="Shipment
Complete" name="action" value="ShipmentComplete">
<input type="image" SRC="/image/addnextcarton.gif" border="0" alt="Add Next
Carton" name="action" value="AddNextCarton">

result is:
ACTION.Y=9
ACTION.X=67

when either buton is used.

Thanks,Adrian

"Michael Winter" <M.******@blueyonder.co.invalid> wrote in message
news:op**************@news-text.blueyonder.co.uk...
On Tue, 20 Jan 2004 22:56:04 +0000, David Dorward <do*****@yahoo.com>
wrote:
Adrian wrote:
I need to have 2 submit buttons in one form calling the same page. I
just
need to know which was used.
<input type="submit" name="s" value="1">
<input type="submit" name="s" value="1">

<?php

print $_REQUEST['s'];

?>

No need for JavaScript.


I assume that the values for the two buttons were supposed to be

different?
To the OP: If the submit button[1] has a name and value, that pair will be
sent with the rest of the data on submission. If there is more than one
button, only the clicked button will have its name/value pair sent. This
will allow you to check which button was pressed server-side.

If you need to check before the form is sent, I think the only way is to
place onclick intrinsic events on the button elements. However, cancelling
the click event might not (I can't remember) stop the form submission, if
that was your intention.

Mike
[1] Either <input ... type="submit"> or <button ...
type="submit">...</button>

--
Michael Winter
M.******@blueyonder.co.invalid (replace ".invalid" with ".uk" to reply)

Jul 20 '05 #4

P: n/a
On Tue, 20 Jan 2004 16:43:50 -0800, Adrian <ad****@nocrapplease.ascc.com>
wrote:
That worked great, thanks. I should have mentioned but I need to do it
with type="image" and it does not work the same. Any work arounds?


You could do one of two things.

1) Name the buttons differently. You could then check for the presence of
either name, rather than one name and two different values[1].
2) Use the BUTTON element, and place an IMG element inside it. This will
keep the standard functionality, but it is rendered horribly by Internet
Explorer. By contrast, it looks quite nice in Opera, and the button can be
styled so that you can't even see it (IE ignores the same styling). I
don't know how it will look in Mozilla and Netscape, but probably a lot
better than IE.

Mike

[1] As you've probably found, you'll get name/value pairs of the form
"name.x=nn" and "name.y=nn" where "nn" is the co-ordinates of the click,
and "name" is the name of the control.

--
Michael Winter
M.******@blueyonder.co.invalid (replace ".invalid" with ".uk" to reply)
Jul 20 '05 #5

P: n/a
"Adrian" <ad****@nocrapplease.ascc.com> wrote in message
news:bu**********@news.tdl.com...
That worked great, thanks. I should have mentioned but I
need to do it with type="image" and it does not work the
same. Any work arounds?

<input type="image" SRC="/image/shipcomplete.gif"
border="0" alt="Shipment Complete" name="action"
value="ShipmentComplete">
<input type="image" SRC="/image/addnextcarton.gif"
border="0" alt="Add Next Carton" name="action"
value="AddNextCarton">

result is:
ACTION.Y=9
ACTION.X=67


With <input type="image"> you get two name/value pairs instead of one
and the value isn't necessarily useful. If the two INPUT fields had
different names you would only get the name/value pairs from the button
click on so the presence of (either on of) those name/value pairs,
combined with the absence of either of the others would still tell you
which INPUT was used.

Also, you have named your INPUT elements "action" and that is a bad
habit as forms already have an action property and that property will be
overwritten by any form controls with a corresponding name. Rendering
that form property unscriptable (at minimum). It is best no to use
names/ids for form controls that correspond with any of the form's
property names, but as JavaScript is case sensitive that is not
difficult to achieve, initial capitals will do.

Richard.
Jul 20 '05 #6

P: n/a

If you really want to use javascript for this ...

<script language="javascript">
function whichButton(buttonNumber) {
document.forms['myForm']['myButton'].value = buttonNumber;
}
</script>

<input type="submit" onClick="whichButton('1');>
<input type="submit" onClick="whichButton('2');>
I think this should work fine ... but I would use non javascript
examples first ... always ... html/ server-side obviously more
reliable.

Brynn
On Tue, 20 Jan 2004 13:55:20 -0800, "Adrian"
<ad****@nocrapplease.ascc.com> wrote:
I need to have 2 submit buttons in one form calling the same page. I just
need to know which was used. Being able to pass a hidden form input for
each would be ideal. How can I do this??

Thanks!,Adrian


Brynn
www.coolpier.com

I participate in the group to help give examples of code.
I do not guarantee the effects of any code posted.
Test all code before use!
Jul 20 '05 #7

This discussion thread is closed

Replies have been disabled for this discussion.