Formulaire et bouton image

Eléphant du PHP | 331 Messages

06 mars 2009, 20:11

Bonjour,

Dans mon formulaire j'ai changé mon
<INPUT TYPE="submit" NAME="go_liste">
Pour un bouton image
<INPUT TYPE="image" NAME="go_liste" SRC="images/newsletter-bt.jpg">
Là mon problème est que dans mon traitement de mes variables sa ne fonctionne plus .

Je commence par la vérification que le bouton envoyé a été cliqué:
if(isset($_POST["go_liste"]))
{
Bien sa ne fonctionne pas.

pouvez-vous m'aider svp?

ViPHP
AB
ViPHP | 5818 Messages

06 mars 2009, 20:20

Tu peux toujours mettre ton image en background

Code : Tout sélectionner

<INPUT TYPE="submit" NAME="go_liste" style="background:images/newsletter-bt.jpg" />

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

06 mars 2009, 23:20

C'est normal, un input de type image n'est sensé envoyer que les coordonnées de la zone cliquée.. en gros, tu ne dois pas avoir de $_POST["go_liste"] (encore que firefox doit le gérer quand même alors qu'il ne devrait pas...) mais avoir des $_POST["go_liste_x"] et $_POST["go_liste_y"] ou un truc du genre (un print_r() de $_POST te le diras :))

Pour un comportement normal, tu peux opter pour la solution d'AB ou pour la balise <button> qui te permet de coller du html et donc une image à l'intérieur :)

Code : Tout sélectionner

<button type="submit" style="cursor:hand;"> <img src="mon_image.png" alt="soumettre" /> </button>
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1996 Messages

07 mars 2009, 00:15

Tu peux toujours mettre ton image en background

Code : Tout sélectionner

<INPUT TYPE="submit" NAME="go_liste" style="background:images/newsletter-bt.jpg" />
Tu peux aussi ajouter une transparence sur les border pour un meilleur résultat :

Code : Tout sélectionner

<INPUT TYPE="submit" NAME="go_liste" style="background:images/newsletter-bt.jpg; border : 1px solid transparent;" />
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 139 Messages

07 mars 2009, 02:49

De mon côté, je fais
if(!empty($_POST['go_liste'])|| !empty($_POST['go_liste_x'])){

  //Ici, recuperation des variable du formulaire
}

ViPHP
AB
ViPHP | 5818 Messages

08 mars 2009, 18:20

Tu peux aussi ajouter une transparence sur les border pour un meilleur résultat :

Code : Tout sélectionner

<INPUT TYPE="submit" NAME="go_liste" style="background:images/newsletter-bt.jpg; border : 1px solid transparent;" />
Oui mais cela ne fonctionne pas avec IE6 qui a encore plus de 20% de parts de marché. Pour enlever le bord il est plus simple de faire border:0