action selon bouton

action selon bouton - HTML/CSS - Programmation

Marsh Posté le 11-07-2006 à 13:27:59    

Bonjour,
j'ai un formulaire dans ma page web, et dans ce formulaire j'ai deux boutons b1 et b2.
Comment je fais pour que l'action de mon <form> (la page cible) soit page1.php si j'appuie sur b1, et page2.php si j'appuie sur b2?  
merci d'avance

Reply

Marsh Posté le 11-07-2006 à 13:27:59   

Reply

Marsh Posté le 11-07-2006 à 13:33:29    

tu fais un test avec isset()
Puis en fonction du bouton, tu fais un header()
Est-ce que ca répond à ta question ?

Reply

Marsh Posté le 11-07-2006 à 13:38:32    

non pas vraiment, je vois pas ce que tu veux dire!

Reply

Marsh Posté le 11-07-2006 à 13:55:49    

est ce que tu peux expliquer plus stp?

Reply

Marsh Posté le 11-07-2006 à 14:01:31    

AlphaZone a écrit :

tu fais un test avec isset()
Puis en fonction du bouton, tu fais un header()
Est-ce que ca répond à ta question ?


 
En procédant de cette manière le problème est qu'il va perdre les données soumises. Le plus simple est de regrouper les traitements dans un seul script, en effectuant un test pour savoir quel traitement exécuter.


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 11-07-2006 à 14:04:01    

C'est pas plus claire. est ce que quelqu'un peut vraiment donner une explication?

Reply

Marsh Posté le 11-07-2006 à 14:09:58    

Mettons tu as ça dans ton formulaire :
 

Code :
  1. <form>
  2. ... (champs)...
  3. <input type="submit" value="action1" name="process" />
  4. <input type="submit" value="action2" name="process" />
  5. </form>


 
Le script vers lequel pointe le formulaire recevra alors un $_POST['process'] égal à l'attribut value du bouton cliqué (action1, ou action2). Tu n'as donc qu'à tester la valeur, et effectuer le bon traitement.


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 11-07-2006 à 14:17:39    

j_lecruel a écrit :

En procédant de cette manière le problème est qu'il va perdre les données soumises. Le plus simple est de regrouper les traitements dans un seul script, en effectuant un test pour savoir quel traitement exécuter.


Avec la méthode que j'ai proposé, c'est sur. Mais bon, vu qu'il ne nous a pas trop détaillé son problème. C'est un peu difficile.

Reply

Marsh Posté le 11-07-2006 à 14:23:41    

c'est pas exactement ce que je voulais mais ça résoud le prob à priori. merci bcp

Reply

Marsh Posté le 11-07-2006 à 14:38:46    

^^ Pas de quoi :p

Reply

Marsh Posté le 11-07-2006 à 14:38:46   

Reply

Marsh Posté le 11-07-2006 à 15:00:18    

mais j 'arrive pas à récuperer la valeur $_POST['process'].
quanf je fais "echo $_POST['process']" dans la page cible, ça n'affiche rien

Reply

Marsh Posté le 11-07-2006 à 15:01:58    

Je dois signaleraussi que mes bouttons sont des button et pas des submits (je fais après onClick:"submit" )

Reply

Marsh Posté le 11-07-2006 à 15:04:28    

9a marche avec submit mais avec button. et moi j'ai besoin de garder button.
y a une solution?

Reply

Marsh Posté le 11-07-2006 à 15:12:49    

mbarekh a écrit :

Je dois signaleraussi que mes bouttons sont des button et pas des submits (je fais après onClick:"submit" )


bin c'est encore plus simple...
Tu fais un champs hidden, tu lui mets une valeur fonction du bouton cliqué et ensuite tu fais ton submit.
 
Note: etre obliger de soumettre un form via du js ça suxxe à mort ...

Reply

Marsh Posté le 11-07-2006 à 15:27:36    

anapajari a écrit :

Note: etre obliger de soumettre un form via du js ça suxxe à mort ...


+1

Reply

Marsh Posté le 11-07-2006 à 15:29:05    

:heink:
 
T'ain ça vous fait mal au cul de faire des trucs simples vous :o
 

Code :
  1. <form method="get">
  2.   <b>
  3.    <input type="button" value="Google" onclick="javascript:Click(this, 'http://www.google.com');"/>
  4.    <input type="button" value="Devguru" onclick="javascript:Click(this, 'http://www.devguru.com');"/>
  5.   </b>
  6.  </form>
  7.  <script type="text/javascript">
  8.  function Click(obj, action)
  9.  {
  10.   obj.form.action = action;
  11.   obj.form.submit();
  12.   return true;
  13.  }
  14.  </script>


Message édité par Arjuna le 11-07-2006 à 15:32:49
Reply

Marsh Posté le 11-07-2006 à 15:31:10    

c'est pas propre ton bouzin :o
L'attribut action existe po pour un input, pis t'es censé faire un getAttribute('action'), pis le javascript pas dans le head, pis nanananaaaa....

Reply

Marsh Posté le 11-07-2006 à 15:33:33    

anapajari a écrit :

c'est pas propre ton bouzin :o
L'attribut action existe po pour un input, pis t'es censé faire un getAttribute('action'), pis le javascript pas dans le head, pis nanananaaaa....


c'est corrigé, et toc :o

Reply

Marsh Posté le 11-07-2006 à 15:34:42    

quand au js dans le head au cas où t'aurais pas vu, ma page n'est pas complète... ça s'appelle des brides, alors y'a pas d'ordre, désolé

Reply

Marsh Posté le 11-07-2006 à 16:20:25    

mbarekh a écrit :

9a marche avec submit mais avec button. et moi j'ai besoin de garder button.
y a une solution?


 
 
On peut savoir pourquoi ? Parce que les solutions pourries en JS quand on peut faire propre, on croit rêver.


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 11-07-2006 à 16:21:48    

parceque regrouper deux pages de traîtement en une seule, c'est plus propre que deux lignes de JS ?

Reply

Marsh Posté le 11-07-2006 à 16:23:41    

(ps: et moi ça me fait pas plus rêver que de voir un gars poser une question, et avoir 25 réponses à côté, 32 critiques et quelques insinuations péjoratives, sans avoir une seule réponse à sa question)

Reply

Marsh Posté le 11-07-2006 à 16:27:19    

j_lecruel a écrit :

On peut savoir pourquoi ? Parce que les solutions pourries en JS quand on peut faire propre, on croit rêver.


 
Peut-être simplement parce que c'est ce que LUI veut ? :sarcastic:  

Reply

Marsh Posté le 11-07-2006 à 16:48:21    

Arjuna a écrit :

(ps: et moi ça me fait pas plus rêver que de voir un gars poser une question, et avoir 25 réponses à côté, 32 critiques et quelques insinuations péjoratives, sans avoir une seule réponse à sa question)


Dans le cas de ce topic, je modérerais un peu ce propos:
- Au départ, mbarekh a demandé "Comment faire", pas qu'on lui fasse
- Il a eu plusieurs réponses, toutes étaient correctes ( en php ou en js) etait-il vraiment nécessaire de lui donner tout le code
- Je comprends toujours pas pourquoi il utilise pas des submits, même si ces boutons déclenchent des contrôles, c'est possible de le faire aussi sur un submit ( et de toute façon les contrôles doivent être fait coté serveur également)
- Et si l'insinuation péjorative c'est "etre obliger de soumettre un form via du js ça suxxe à mort ..." je suis désolé mais je l'assume à mort :o

Reply

Marsh Posté le 11-07-2006 à 16:50:12    

Mr Mala a écrit :

Peut-être simplement parce que c'est ce que LUI veut ? :sarcastic:


 
 
Ah... eh bien peut-être que l'utilisation du JS n'est pas justifiée ici (à part pour rendre le truc bien inaccessible), peut-être qu'utiliser un input de type button à la place d'un submit pour valider un formulaire est une idée à la con,...  
 


---------------
♈ ♋ ♌ ♍ ♎ ♏ - Agora Fidelio | Galerie d'art Toulousaine
Reply

Marsh Posté le 11-07-2006 à 16:52:43    

anapajari > je ne parle pas que de tes propos, ni que de ce topic. c'est une constante commune à tous les topics.
 
deplus, je ne lui ai pas "donné tout le code", je lui ai simplement donné des brides de code qui font ce qu'il demande. j'ai pas fait ça page, ni traîté les cas particuliers qu'il pourrait avoir...

Reply

Marsh Posté le 11-07-2006 à 17:01:39    

waaaaw vous avez écrit tout ça déjà.J'ai déjà fait ce que je voulais avec du javascript. Merci pour tout le monde

Reply

Marsh Posté le 11-07-2006 à 17:28:51    

regarde quand même mon code, je doute que le tiens soit aussi simple ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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