Re: Button id's - firefox and IE different ?
| From: | Peter Ford | Date: | Thu, 02 Apr 2009 11:04:47 +0000 |
| Subject: | Re: Button id's - firefox and IE different ? | ||
| References: | 1 2 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-290960@lists.php.net to get a copy of this message | ||
Peter Ford wrote:
> Angus Mann wrote:
>> Hi all.
>>
>> I want to have several delete buttons with just one form, and depending on which button is
>> pressed, one of several items is deleted.
>>
>> So I need multiple submit buttons for 1 form, each displaying the same text
>> "Delete" to the user, but each with a different "value" so the PHP script can
>> tell them apart.
>>
>> I've used this code for the buttons...
>> <center><button type="submit" name="btid"
>> value="1">Delete</center>
>> <center><button type="submit" name="btid"
>> value="2">Delete</center>
>> <center><button type="submit" name="btid"
>> value="3">Delete</center>
>>
>> And it works just fine with firefox. But IE does not seem to pass the value back to the
>> btid so when the script asks
>> if $_POST['btid'] == "1" {
>> }
>>
>> the value 1, 2, or 3 is not given back to PHP by IE. It is given back correctly by firefox
>> and works fine.
>>
>> Any suggestions ?
>>
>> Thanks.
>>
>>
>
> Well, to answer your initial question, IE won't play like that - it uses the
> content of the button as the value and no amount of telling it is going to
> change that at present... I suspect this behaviour is one of those things that
> is ambiguously specified by the standards.
>
> The real question is ... why do you want to do that (tell the buttons apart, I
> mean)? From a user's perspective, if they are labelled the same, and in the same
> form, then surely they must do the same thing? Sounds like the form design needs
> to fresh thought.
>
> If you must do it like you this, you need to change the labels on the buttons,
> but remember: when you come to internationalize your site with twenty-six
> different languages then you'll have to check each possible translation in the
> back-end code. And if you decide to put images on the buttons instead of words
> then you are really up the creek...
>
> Either: split the form up so that different delete buttons act on their
> respective bits of the form.
> Or: bite the bullet and use javascript onclick events to set a hidden field
> which signals what the action is supposed to be in the back end.
>
There's a third option: make sure your clients only use Firefox :)
--
Peter Ford phone: 01580 893333
Developer fax: 01580 893399
Justcroft International Ltd., Staplehurst, Kent