IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

HTML Discussion :

Probleme de validation de formulaire


Sujet :

HTML

  1. #1
    Membre actif Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Points : 275
    Points
    275
    Par défaut Probleme de validation de formulaire
    Bonjour,
    J'ai un formualire avec plusieurs bouton de type image.
    Sous FF, tout marche mais sous IE rien ne marche, qd on click ça charge mais rien se passe.

    Le pb semblerait venir soit du type image soir de Onclick="submit();", j'ai essayer plusieurs façon d'écrire le Onclick (cf code ci dessous) mais rien ne marche.

    Code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    <form method="post" action="..." name="formu">
    	<table>				
    		<tr>
    			<td> 
    				<input type="image" src="img/.." name="bt" value="bt_lieux" Onclick="this.form.submit();"><br />Gestion des lieux
    			</td>
    			<td>   
    				<input type="image" src="img/.." name="bt" value="bt_hotel" Onclick="submit"><br />Gestion des hotels
    			</td>
    			<td>										   
    				<input type="image" src="img/.." name="bt" value="bt_prog"><br />Gestion programmes
    			</td>
    			<td>										   
    				<input type="image" src="img/.." name="bt" value="bt_pour" Onclick="this.submit();"><br />Gestion + pour -
    			</td>
    			<td>										   
    				<input type="image" src="img/.." name="bt" value="bt_modif" Onclick="document.formu.submit();"><br />Editer
    			</td>
    		</tr>
    	</table>  
    [...]
    </form>
    Et test sur quel bouton on a cliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (isset($_POST['bt']))
    {	 	
          if ($_POST['bt'] == "bt_lieux")	 
          {
    [...]

    Comment avoir différent bouton qui soit une image, qui valide le formualire et qui marche sous FF et IE ?

    Merci d'avance

  2. #2
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    Le bouton de type image étant un submit par défaut, il est inutile de préciser un onclick pour soumettre le formulaire, étant donné qu'il le fera de lui-même.

  3. #3
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Un <input type="image"> est équivalent à un <input type="submit"> à ceci près que ça affiche une image à la place du bouton. Tout comme mettre un onclick n'a pas de sens avec un <input type="submit">, ça n'en a pas avec un <input type="image">. Conclusion : faut changer ta façon de faire :
    • Tu mets un champ de formulaire caché qui s'appelle bt : <input type="hidden" name="bt">
    • Tu écris une fonction JavaScript qui prend en paramètre le value de tes anciens <input type="image">, qui colle cette valeur dans ton nouveau champ caché bt et qui fait un submit de ton formulaire :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      function submitForm(value) {
          document.forms[0].bt.value = value;
          document.forms[0].submit();
      }
    • Tu mets tout simplement des balises <img> à la place <input type="image">
    • et dans les onclicks des images, tu appelles ta fonction submitForm avec la valeur qui va bien : onclick="submitForm('bt_lieux');"

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  4. #4
    Membre actif Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Points : 275
    Points
    275
    Par défaut
    Bisûnûrs, ta solution était déjà tester.

    _Mac_, j'ai testé ta solution mais sans succès, rien se passe qd je clilc sur l'image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <script language="javascript" type="text/javascript">
    function submitForm(value) {
        document.forms[0].bt.value = value;
        document.forms[0].submit();
    }
    </script>
    [...]
    			<input type="hidden" name="bt" value="">
    			<td> 
    				<img src="img/ajouter.png" Onclick="submitForm('bt_lieux');">
    				<br />Gestion des lieux
    			</td>

  5. #5
    Membre actif Avatar de MANU_2
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    417
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 417
    Points : 275
    Points
    275
    Par défaut
    Voici ce qui marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    			<input type="hidden" name="bt" value="">
    			<td> 
    				<input type="image" src="img/" name="bt" value="bt_lieux" onClick='document.forms.bt.value="bt_lieux"'><br />Gestion des lieux	   
    			</td>

  6. #6
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 868
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 868
    Points : 16 258
    Points
    16 258
    Par défaut
    L'utilisation du onclick quand tu utilise un bouton de type submit ou image reste une très mauvaise idée.
    En effet, à partir du moment que ton formulaire a le focus, tu peux le valider en appuyant sur la touche entrée de ton clavier, ce qui zappe l'étape du onclick sur ton bouton.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [2.x] Symfony2 Probleme de validation de dates dans formulaire.
    Par Hotei dans le forum Symfony
    Réponses: 7
    Dernier message: 28/07/2014, 15h06
  2. Problème de validation de formulaire
    Par mymyma dans le forum Struts 1
    Réponses: 7
    Dernier message: 02/06/2006, 13h30
  3. [XHTML] Probleme de validation
    Par pc152 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 30/11/2004, 18h43
  4. Valider un formulaire par une image
    Par Fleep dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 31/10/2004, 01h50
  5. [Struts]Validation de formulaire
    Par djoukit dans le forum Struts 1
    Réponses: 4
    Dernier message: 12/03/2004, 09h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo