Problème de fromulaire et de boutons

Problème de fromulaire et de boutons - HTML/CSS - Programmation

Marsh Posté le 26-02-2006 à 18:57:03    

Bonjour,
 
J'essaye de coder une page dans laquelle se trouve :
     - plusieurs imput (sous forme de liste ou en saisie libre)
     - plusieurs boutons
 
Dans cette page, je veux pouvoir faire plusieurs actions :
     - si on remplit les valeurs du tableau 1 et que l'on clic sur le bouton 1
          -> redirection vers page X
 
     - si on remplit les valeurs du tableau 2 et que l'on clic sur le bouton 2
          -> redirection vers page Y
 
J'ai donc un bouton par action.
 
Mon problème est le suivant :
 
     - lorsque je clic sur le bouton 1 : tout va bien => il exécute ce qu'on lui demande  :)  
     - lorsque je clic sur le bouton 2 : rien ne va plus => il ne fait rien !  :??:  :heink:  
 
Pouvez vous me dire si il est possible de :
     - avoir plusieurs boutons dans une seule page (et les conditions s'il y en a) ?
 
J'espère que ma question est claire ... je peux donner des précisions si vous le voulez.
 
Merci pour votre aide .... je désespère ! :cry:  
 
HAL

Reply

Marsh Posté le 26-02-2006 à 18:57:03   

Reply

Marsh Posté le 26-02-2006 à 21:58:20    

Oui, on peut avoir plusieurs boutons dans une seule page, et même plusieurs boutons pour un même fomulaire (form).
 
Cela dit, il faut faire attention au genre de bouton que l'on utilise. Il y a en a de deux sortes :
 - bouton de type "submit" qui exécute l'action indiquée dans la balise form
 - bouton de type "button" auquel on a l'habitude d'associer un événement onClick=...
 
Il est conseillé de n'avoir qu'un seul bouton de type "submit" par formulaire, et autant de boutons de type "button" que l'on veut.


Message édité par olivthill le 26-02-2006 à 21:59:11
Reply

Marsh Posté le 27-02-2006 à 01:55:11    

Pourquoi il est conseillé de n'avoir qu'un bouton submit par formulaire ? Pourquoi ca serait pas recommandé de vouloir valider en pouvant choisir "oui" "oui mais pas trop" "oui mais bof"...?  
 
Après pour HAL777, à mon avis le plus simple c'est 2 formulaires séparés avec donc 2 submits.


Message édité par gooopil le 27-02-2006 à 01:55:27
Reply

Marsh Posté le 27-02-2006 à 09:26:04    

Bien sûr, cher goopil, on fait ce qu'on veut. Ta remarque est tout à fait juste.
 
Cela dit, je vois le bouton de type "submit" comme étant l'équivalent du "DefPushButton" de Windows, lequel n'est pas un bouton ordinaire, puisque c'est celui qui a le focus par défaut, et qui est activé quand l'utilisateur appuie sur Enter. Je me dis aussi, qu'avoir plusieurs boutons "submit" pour un seul formulaire, peut donner l'idée fausse ou juste à l'utilisateur, que le concepteur aurait été indécis ou n'aurait pas mis de l'ordre, n'aurait pas établit (de menuisier) une hierarchie parce qu'il aurait eu l'esprit confus ou rebel (-ote et dix de der).
 
Et donc finalement, HAL777 fait ce qu'il veut, je donnais juste mon humble point of view.

Reply

Marsh Posté le 27-02-2006 à 10:16:09    

prenons l'exemple de ce code :  

Code :
  1. <form action="page.php">
  2. Nom : <input type="text" name="nom"><br>
  3. Prénom : <input type="text" name="prenom"><br>
  4. identifiant : <input type="text" name="prenom"><br>
  5. <input type="submit" name="action" value="Ajouter">
  6. <input type="submit" name="action" value="Supprimer">
  7. <input type="submit" name="action" value="Modifier">
  8. </form>


 
Nous avons  3 boutons de types submit qui portent le même nom.
Si je cliques sur l'un des boutons, dans page.php mon $_GET['action'] aura une des 3 valeurs suivantes au choix : ajouter, supprimer, modifier.
 
il suffit simplement pour traiter l'un des 3 cas de faire un Switch case (cf doc php) et d'agir en conséquence. Pas besoin de 2 formulaires ou de 36 trucs qui sont des méthodes nulles.
 
 
PS: Pour la valeur de Action je passe par une fonction check() que j'ai créé et qui me modifie la valeur de l'action en supprimant les accents, majuscules et espaces et caractères alacon (!:;?%ù*....), afin de pouvoir faire une condition clean.
$action = check($_GET['action'])
 
par ailleurs s'il doit envoyer les données vers la page X ou Y il peut très bien faire un include de ces pages si elles ne font que du traitement et par la suite faire un  
header(location:) après traitement


Message édité par gatsu35 le 27-02-2006 à 10:18:24
Reply

Marsh Posté le 03-03-2006 à 16:06:41    

Merci beaucoup à tous ...
 
Votre aide m'est précieuse ... je ne connais pas parfaitment le language que j'utilise !
En plus je ne suis pas développeur ... je cherche juste à faire un petit site pour m'amuser.
 
Je teste vos conseils et avise ensuite de la méthode.
 
Je suis déjà rassurer de pouvoir utiliser un sel formulaire avec plusieurs boutons.
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed