2 boutons pour 1 form

Eléphanteau du PHP | 10 Messages

10 févr. 2005, 18:07

Bonjour,
J'ai un formulaire avec plusieurs champs à remplir. Je voudrais que ce formulaire serve pour (1er bouton) afficher tous les enregistrements selectionnés et (2eme bouton) serve pour afficher les statistiques sur les champs sélectionnés. Comment peut on lui indiquer le bon fichier php selon que l'on clique sur l'un ou l'autre des boutons.

Merci

Eléphant du PHP | 67 Messages

10 févr. 2005, 18:38

Hello,

Le plus simple serai d'effectuer les 2 affichages sur la meme page en différenciant le traitement avec un if sur le name du bouton (voir http://www.phpfrance.com/forums/ftopic126.php )

Sinon avec un peu de JavaScript tu dois pouvoir t'en sortir avec ton idée de base, soit de modifier la page de traitement selon le bouton cliqué.

Code : Tout sélectionner

<script language="javascript"> function envoyer_form(pageTraitement) { document.leNomDuForm.action = pageTraitement; document.leNomDuForm.submit(); } </script> <form name="leNomDuForm action=""> ... <input type="button" name="affiche_tout" value="TOUT AFFICHER" onClick="envoyer_form('tout_afficher.php')"> <input type="button" name="stat" value="STATS" onClick="envoyer_form('stats.php')"> </form>
Mais la 1er solution est mieux je trouve...

A+

EDIT: le name des boutons était pas adapté...

Mammouth du PHP | 19672 Messages

11 févr. 2005, 10:08

Salut,
voilà ce que j'utilise pour faire ça, il me semble que c'est le plus simple pour utiliser deux (ou +) boutons "submit" :

Code : Tout sélectionner

<input type="hidden" name="traitement" id="traitement" value="" /> <input class="action" type="submit" onclick="document.forms['commande'].elements['traitement'].value='caisse'" name="commander" id="commander" title="Cliquez pour confirmer votre commande" value="Confirmer la commande" /> <input class="action" type="submit" onclick="document.forms['commande'].elements['traitement'].value='recalculer'" name="recalcul" id="recalcul" title="Cliquez pour mettre à jour le bon de commande" value="Mettre à jour le panier" /> <input class="action" type="reset" name="refaire" id="refaire" title="Cliquez pour annuler les dernières modifications" value="Annuler les modifications" />
à partir de là, je récupère la valeur de l'input "hidden" pour choisir le traitement à effectuer, dans le cas illustré ici, recalculer un bon de commande et le ré-afficher ou bien confirmer une commande et valider le formulaire.
Bon code :)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 67 Messages

11 févr. 2005, 13:40

Ouais c'est vrai que c'est plus propre que de ce fier au variable des boutons... et certainement plus sur, car je ne sais pas vraiment si tout les browser envoie de la meme manière les boutons...

(J'ai pas du etre clair, désolé... j'ai faim ;-)

Eléphanteau du PHP | 39 Messages

12 févr. 2005, 11:43

Ouais le plus simple c'est de mettre:
if ($_POST['visualisation']) { 
ce que tu veux faire avec visualisation
} 
if ($_POST['enregistrement']) { 
ce que tu veux faire avec enregistrement
} 
Par contre il ne faut pas oublier de mettre dans value="":
if (isset($_POST['_nom_'])) echo stripslashes(htmlentities(trim($_POST['_nom_']))); ?>
Sinon le client va être obligé de réecrire ce qu'il vient de taper.
KitNetiGraph, création de design gratuit.
Allez le visiter: http://www.kitnetigraph.org