Valeur de balise "button" différente sous IE et Mo

WRInaute impliqué
J'ai découvert totalement par hasard un super pépin qui m'embête pas mal.

Voilà, dans ma page j'ai 4 boutons (super balise je trouve) :
Code:
<button type="submit" name="act" value="reloc_panier" style="width:230px;">Annuler (retour au panier)</button>
<button type="button" style="width:230px;" onclick="history.go(-1);">Annuler (page pr&eacute;c&eacute;dente)</button><br />
<button type="submit" name="act" value="panier_ajout_express" style="width:230px;">Recalculer le produit</button>
<button type="submit" name="act" value="panier_confirm" style="width:230px;">Confirmer l'ajout dans le panier</button>

J'effectue après mes requêtes en fonction (entre autre) de la valeur de $_POST['act']. On va prendre l'exemple suivant : je clic sur le bouton "Recalculer le produit".
Sous Mozilla, $_POST['act'] = 'panier_ajout_express'
Sous IE, $_POST['act'] = 'Confirmer l\'ajout dans le panier'

En fait, quelque soit le bouton sur lequel j'appuie, IE envoie la valeur du CONTENU de la dernière balise BUTTON et non pas la valeur du bouton cliqué.
Ca me cloue sur place de voir ce genre de problèmes ...

Si quelqu'un a une idée du pourquoi du comment ou une astuce je suis preneur :/
En vous remerciant.
 
A
Anonymous
Guest
donne un nom différent aux boutons et ensuite tu testes pour savoir lequel a été cliqué.. c'est une idée comme une autre..
 
WRInaute impliqué
marc974 a dit:
donne un nom différent aux boutons et ensuite tu testes pour savoir lequel a été cliqué.. c'est une idée comme une autre..

C'est encore plus fort, j'ai donné un nom différent à chaque bouton (name='act1' etc.), quand je clic sur un bouton dans les données $_POST il me renvoie le contenu des 3 boutons ! (ptete pqu'ils sont de type "submit").
 
A
Anonymous
Guest
une astuce est pour chaque bouton d'ajouter un onclick qui renseigne une variable commune, ie :

// bouton1
onclick="document.forms[0].variable.value='un'";

// bouton2
onclick="document.forms[0].variable.value='deux'";

etc etc

puis tu testes la variable "variable" et là cela devrait être OK, je pense.. en tout cas, ça marche chez moi ;o)
 
WRInaute impliqué
Oui je songeais à du Javascript mais en dernier recours seulement, comme le dit le ptit nounours, c'est dommage d'en arriver là.

Sinon j'utilitais <button> car on peut faire de super boutons et surtout donner la valeur qu'on veut sans influencer l'affichage du bouton. Ca permet de mixer aussi des images et du texte sans se prendre le chou.
Avec l'input le "value" correspond à la valeur affichée sur le bouton et à celle qui sera renvoyée par $_POST, avec button c'est indépendant.
 
Discussions similaires
Haut