pb deux actions differantes

pb deux actions differantes - HTML/CSS - Programmation

Marsh Posté le 10-05-2006 à 10:36:34    

Bonjour,  
 
j'ai un probleme. J'ai un formulaire contenant 3 listes et deux boutons.
Le premier bouton va sur traitement.php et je veut que le deuxième aille sur fichier.php.
Comment gérer deux actions differentes pour le meme formulaire?

Reply

Marsh Posté le 10-05-2006 à 10:36:34   

Reply

Marsh Posté le 10-05-2006 à 11:06:56    

Pouet pouet pouet...
 
Déjà faut faire côté serveur, y'a pas moyen d'avoir plusieurs actions par formulaire. Ensuite comme Internet Explorer c'est de la merde est n'est même pas capable de gérer la base de l'HTML 4, faut faire comme ça :

<input type="submit" name="action" value="Traiter le truc">
<input type="submit" name="action" value="Là c'est pour le fichier">


Et dans le php :

$action = isset($_POST['action']) ? $_POST['action'] : NULL;
 
switch($action) {
  case 'Traiter le truc':
    require('traitement.php');
    break;
  case 'Là c'est pour le fichier':
     require('fichier.php');
     break;
}

Reply

Marsh Posté le 10-05-2006 à 11:09:51    

2 solutions (à priori) :
 
=> lors du clic sur tes boutons tu affectes telle ou telle URL à l'attribut action de ton formulaire via javascript => les visiteurs ayant désactivé JS ne pourront pas utiliser ton formulaire
 
=> tu balance ton formulaire vers le même script PHP quelque soit le bouton sur lequel le visiteur a cliqué, et dans ce script tu teste pour savoir quel bouton a été pressé et effectuer le traitement correspondant.
 
edit : grilled


Message édité par j_lecruel le 10-05-2006 à 11:10:11

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

Marsh Posté le 10-05-2006 à 11:11:33    

Dans l'exemple de Flo, y a un name="action" en trop je dirais :)

Reply

Marsh Posté le 10-05-2006 à 11:13:55    

NikoGJ a écrit :

Dans l'exemple de Flo, y a un name="action" en trop je dirais :)


Bin non justement [:mlc] c'est là toute l'idée, deux inputs nommés pareil et tu switch en fonction de la valeur récupérée!!!

Reply

Marsh Posté le 10-05-2006 à 11:19:32    

dans <form name="monform" ....> est ce que je dois mettre une action car lorsque j'en met pas le clique sur Valider me fait rester sur la page index.php pareil pour le clique sur le fichier.
Et lorsque je met <form name=... action="traitement.php"...> çà va tt le tps sur traitement.php et ne traite pas le switch.

Reply

Marsh Posté le 10-05-2006 à 11:22:26    

il faut mettre le contenu php que FlorentG a donén dans un 3eme fichier et  mettre celui la dans action="", branche le cerveau :o

Reply

Marsh Posté le 10-05-2006 à 11:27:36    

je viens de le faire mais maintenant çà reste tout le tps bloqué sur action.php
?????????

Reply

Marsh Posté le 10-05-2006 à 11:28:59    

essaye de comprendre le code :o

Reply

Marsh Posté le 10-05-2006 à 11:37:56    

c bon j'ai mis $action=$_REQUEST["action"]; et çà marche merci a tous

Reply

Marsh Posté le 10-05-2006 à 11:37:56   

Reply

Marsh Posté le 10-05-2006 à 13:40:29    

Notons qu'on aurait pu faire comme ça :

<button type="submit" name="action" value="fichier">Là c'est pour le fichier</button>
<button type="submit" name="action" value="traitement">Là c'est pour le fichier</button>


Et :

$action = isset($_POST['action']) ? $_POST['action'] : NULL;  
 
if($action === 'fichier' || $action === 'traitement') {
  require($action . '.php');
}


Sauf que ça foire total sous IE, qui ne transmet pas l'attribut value du bouton cliqué, mais toujours le contenu du dernier bouton :(

Reply

Sujets relatifs:

Leave a Replay

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