2 submit button calling one page

A

Adrian

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
 
D

David Dorward

Adrian said:
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.
 
M

Michael Winter

Adrian said:
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>
 
A

Adrian

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 said:
Adrian said:
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>
 
M

Michael Winter

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.
 
R

Richard Cornford

Adrian said:
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.
 
B

Brynn

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


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!
 

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,774
Messages
2,569,596
Members
45,143
Latest member
SterlingLa
Top