Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1380 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  2 boutons submits dans le même formulaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

2 boutons submits dans le même formulaire

n°849810
attentio
Posté le 14-09-2004 à 11:39:19  profilanswer
 

salut a tous !
 
G quelques difficultés pour creer un bouton "supprimer"dans un formulaire qui contient deja un bouton submit, qui lui, me permet de recalculer le prix total d'un caddie.
en fait ce bouton"supprimer" doit me permettre de supprimer chaque article dans le caddie.
voici le code de mon formulaire actuellement :
 

Code :
  1. echo'<form action = caddy.php method = post name= form_caddy>';
  2. //bouton pour recalculer le prix total de mon caddie  
  3. echo'<A HREF="javascript:document.form_caddy.submit()">Recalculer</A>;';
  4. echo'</form>';


 
la ca marche ...
et en fait il faudrait qu'a l'interieur de ce formulaire G un bouton du genre :
 

Code :
  1. //bouton supprimer article  
  2. echo'<input type =hidden name = invisible value = 1>';
  3. if(isset($_POST['invisible']) && $_POST['invisible']==1)
  4. unset($_SESSION['caddy'][$ref]);
  5. echo'<A HREF="javascript:document.form_caddy.submit()">Supprimer</A>  ';


 
 
seulement, ca me fait deux boutons submits ...resultat ya des confusions partout avec les actions.
j'ai essayé plusieurs choses mais il ya toujours C confusion entre les 2 boutons
 
pour info j'ai un champ quantité :
 

Code :
  1. echo "quantité :<input type = text  maxlength=2 class= champs_texte name = \"$ref\" value = \"$quantite\" size = 1 align='right'><br>";


 
 
 
qui, si il est a 0 me supprime bien mon article
 

Code :
  1. foreach ($HTTP_SESSION_VARS['caddy'] as $ref => $quantite)
  2.     {
  3.       if($HTTP_POST_VARS[$ref]=='0')
  4.         unset($HTTP_SESSION_VARS['caddy'][$ref]);
  5.     }


 
 
voila j'espere avoir été clair
merci de bien vouloir m'aider .... je suis dans la detresse la + complete
 
attentio


Message édité par attentio le 24-03-2005 à 21:16:15

---------------
L'ordinateur a de la mémoire mais aucun souvenir ...
mood
Publicité
Posté le 14-09-2004 à 11:39:19  profilanswer
 

n°849847
pascal_
Posté le 14-09-2004 à 11:59:18  profilanswer
 

attentio a écrit :


seulement, ca me fait deux boutons submits ...resultat ya des confusions partout avec les actions.
j'ai essayé plusieurs choses mais il ya toujours C confusion entre les 2 boutons


 
C'est normal. Je vois 2 solutions :
- soit tu fais des "vrai" boutons submit :
  <input type="submit" value="Supprimer" name="suppr" />
  <input type="submit" value="Recalculer" name="recalc" />
et tu testes ensuite dans le PHP si tu as $_POST['suppr'] ou $_POST['recalc']
 
- soit tu passes par le javascript. Tu fais un champ caché qui sera mis à jour selon que l'utilisateur clique sur supprimer ou recalculer :
  <input type="hidden" name="action" value="recalc" />
  <a href="javascript:suppr();"> Supprimer </a>
  <a href="javascript:recalc();"> Recalc </a>
 
Avec les fonctions javascript qui seraient qqchose dans le genre (à vérifier la syntaxe, je suis pas un pro du js) :
function suppr(){
  Document.form_caddy.action.value = "suppr";
  Document.form_caddy.submit();
}
 
function recalc(){
  Document.form_caddy.action.value = "recalc";
  Document.form_caddy.submit();
}
 
:gratgrat: "Document.form_caddy.action.value" ne doit sûrement pas marcher  :D  


Message édité par pascal_ le 14-09-2004 à 12:00:38
n°849863
attentio
Posté le 14-09-2004 à 12:15:28  profilanswer
 

ok je vais essayer tout ca :gratgrat:

n°850105
Snoopy71
Posté le 14-09-2004 à 17:05:15  profilanswer
 

Ou un peu plus simple mais dans le même esprit :
 
tu fais un champ caché nommé action :
<INPUT TYPE="HIDDEN" NAME="action" VALUE="">
 
et sur tes boutons submit, tes images ou autre objet de validation, tu modifies la valeur de action qui est supposé être dans la forme "form" :
 
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Supprimer" onClick="document.form.action.value='suppr';">

n°850155
aspegic500​mg
Posté le 14-09-2004 à 18:36:52  profilanswer
 

pascal_ a écrit :

C'est normal. Je vois 2 solutions :
- soit tu fais des "vrai" boutons submit :
 <input type="submit" value="Supprimer" name="suppr" />
  <input type="submit" value="Recalculer" name="recalc" />
et tu testes ensuite dans le PHP si tu as $_POST['suppr'] ou $_POST['recalc']

 
- soit tu passes par le javascript. Tu fais un champ caché qui sera mis à jour selon que l'utilisateur clique sur supprimer ou recalculer :
  <input type="hidden" name="action" value="recalc" />
  <a href="javascript:suppr();"> Supprimer </a>
  <a href="javascript:recalc();"> Recalc </a>
 
Avec les fonctions javascript qui seraient qqchose dans le genre (à vérifier la syntaxe, je suis pas un pro du js) :
function suppr(){
  Document.form_caddy.action.value = "suppr";
  Document.form_caddy.submit();
}
 
function recalc(){
  Document.form_caddy.action.value = "recalc";
  Document.form_caddy.submit();
}
 
:gratgrat: "Document.form_caddy.action.value" ne doit sûrement pas marcher  :D


 
Et moi qu'ait toujours cru qu'on pouvait pas avoir 2 boutons submit avec un action "différent", c'etait si simple que je n'y ai pas pensé :wahoo:

n°850825
Profil sup​primé
Posté le 15-09-2004 à 15:55:48  answer
 

aspegic500mg a écrit :

Et moi qu'ait toujours cru qu'on pouvait pas avoir 2 boutons submit avec un action "différent", c'etait si simple que je n'y ai pas pensé :wahoo:


perso j'en gere parfois plus de 2 avec des tableaux !(boutons modifier/supprimer en colonne)
je vois pas ou est la difficulté
de préférence faites le en PHP, le javascript est à bannir pour ce genre de chose

n°851046
sircam
I Like Trains
Posté le 15-09-2004 à 21:18:16  profilanswer
 

spike a écrit :


de préférence faites le en PHP, le javascript est à bannir pour ce genre de chose


Je ne serais pas aussi catégorique.  [:aline2003]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
n°851283
attentio
Posté le 15-09-2004 à 23:09:22  profilanswer
 

facile ... facile?
mais est ce que tu pourrais me dire comment tu ferais les submits tout en php /mon code
 
ATTENTIO
debutant malgré lui

n°851286
naceroth
Posté le 15-09-2004 à 23:10:20  profilanswer
 

sircam a écrit :

Je ne serais pas aussi catégorique.  [:aline2003]


 
On ne base pas des fonctionnalités nécessaires d'un site sur un truc désactivable sur le client...

n°853007
aspegic500​mg
Posté le 18-09-2004 à 00:27:52  profilanswer
 

naceroth a écrit :

On ne base pas des fonctionnalités nécessaires d'un site sur un truc désactivable sur le client...


 
L'idéal étant de faire une vérif en javascript ET une vérif en php, ca allège le serveur (faut en avoir besoin), ca allège le temps d'attente pour le visiteur (mais si page légère et/ou visiteur en adsl, pas besoin), mais c'est + de temps à coder.

mood
Publicité
Posté le 18-09-2004 à 00:27:52  profilanswer
 

n°853010
naceroth
Posté le 18-09-2004 à 00:36:04  profilanswer
 

Oui oui, on l'a déjà dit et redit et ce n'était nullement mon propos :)
 
Je précisais juste qu'il ne fallait pas baser une verif sur le seul jscript. Chez moi, ton exemple plus haut en jscript planterait par exemple (et pas parce que le .value est de trop hein :D))

n°853187
attentio
Posté le 18-09-2004 à 14:00:49  profilanswer
 

j'ai fais ca en php mais ca marcha pas !!!
si quelqu'un pouvait m'aider
 

Code :
  1. //index.php?page=caddy&new=3  
  2. echo'<form method = post action = index.php?page=caddy >';
  3. foreach ($caddy as $ref => $quantite)
  4. //les articles de mon caddie  
  5. {
  6. if (!empty($_POST)) {
  7. if (isset($_POST['supp'])) {
  8. unset($_SESSION['caddy'][$ref]);
  9. }
  10. }
  11. echo'<input type=submit value=supprimer name=supp>';
  12. }
  13. //mon bouton recalculer qui actualise ma page
  14. echo '<input type=submit name=recal value=recalculer>';
  15. </form>


il ya toujours des confusions dans mes boutons... je ne trouve pas la solution pour bien rendre distinct ces deux submits
 
merci infiniment

n°853240
naceroth
Posté le 18-09-2004 à 17:00:03  profilanswer
 

attentio a écrit :

j'ai fais ca en php mais ca marcha pas !!!
...
il ya toujours des confusions dans mes boutons... je ne trouve pas la solution pour bien rendre distinct ces deux submits


 
Bon, déjà, respecte les quelques réglesde l'html (juste celle là, je demande même pas l'xhtml) donc les attributs entre " :)
 
Ensuite, pourquoi pas utiliser un champ hidden plutôt qu'un index.php?page=caddy comme action, ça t'éviterait devoir jongler entre $_GET et $_POST dans le traitement ?
 
Et pour finir, dans la version php, c'est pas dans le forumulaire que tu dois faire la disctinction entre les deux submits, mais sur la page de traitement :)

n°853981
attentio
Posté le 20-09-2004 à 11:48:29  profilanswer
 

mais comment kon fait avec les hidden !!!!

n°854267
naceroth
Posté le 20-09-2004 à 17:30:22  profilanswer
 

(dommage que je gagne pas un euro chaque fois qu'on pose une question sur les champs hidden :D)
 
ton formulaire :

Code :
  1. <form action="index.php" action="post">
  2. <input type="hidden" name="page" value="caddy" />
  3. <input type="text" name="kkwet" value="" />
  4. <input type="submit" value="action1" name="sender" />
  5. <input type="submit" value="action2" name="sender" />
  6. </form>


 
ton fichier index.php

Code :
  1. $page = $_POST['page'];
  2. switch ($_POST['sender']) {
  3. case 'action1':
  4. // Traitement action 1
  5. case 'action2':
  6. // Traitement action 2
  7. default :
  8. // Traitement par defaut
  9. }


 
exemple basique sans vérifications particulières

n°854513
attentio
Posté le 21-09-2004 à 01:10:39  profilanswer
 

slt!
juste une ptite question de debutant !!!!
alors a koi ressemblerai mon code si:
- ACTION1 reactualise simplement la page index.php
- et que ACTION 2 =  unset($_SESSION['caddy'][$ref]);
 
est ce que ceci suffit :

Code :
  1. case 'action1':
  2. //je ne mets rien comment action est dans la balise form
  3. case 'action2':
  4. unset($_SESSION['caddy'][$ref]);


 
ou je suis completement a coté de la plaque
 
merci infiniment de ton aide
 
 

n°854516
naceroth
Posté le 21-09-2004 à 01:57:45  profilanswer
 

A mon avis, si tu n'interviens pas dans le cas où le bouton renvoit 'action1' et que tu n'as pas de traitement par défaut,  tu peux simplifier en
 

Code :
  1. if ($_POST['sender'] == 'action2') {
  2. unset($_SESSION['caddy'][$ref]);
  3. }

n°854673
attentio
Posté le 21-09-2004 à 11:23:24  profilanswer
 

z'arrive pas  ...   z'arrive pas !!!!!!!! de l'aide !!!!
 
Voila ce qui ce passe quand j'arrive sur ma page, j'ai un Notice: Undefined index sur sender mais quand je clique sur supprimer l'erreur ne s'inscrit plus mais rien ne s'est passé.mais si je clique une deuxieme fois alors mon article va se supprimer.
mais si dans mon caddy G 3 articles il va me supprimer les trois articles ... est ce que ca vient de mon unset qui n'est pas bon ou bien du bouton supprimer passé dans la boucle foreach

Code :
  1. echo'<form method = post name=form_caddy action = index.php>';
  2.   foreach ($caddy as $ref => $quantite)
  3.   {
  4. //affichage des articles dans le caddy
  5. //qui ont chacun un bouton supprimer
  6.    if ($_POST['sender'] == 'supprimer') {
  7. unset($HTTP_SESSION_VARS['caddy'][$ref]);
  8. }
  9. echo'<input type="hidden" name="page" value="caddy">';
  10. echo'<input type="submit" value="supprimer" name="supprimer" >';
  11. }
  12. //affichage du bouton qui permet de recalculer le caddie
  13. echo'<A HREF="javascript:document.form_caddy.submit()">recalculer</A>';


 
merci encore de ton aide
 
attentio
 
ps :un point positif :plus de confusion entre le bouton recalculer et supprimer

n°854676
attentio
Posté le 21-09-2004 à 11:26:53  profilanswer
 

houps, erreur de frappe

Code :
  1. echo'<input type="submit" value="supprimer" name="sender" >';

n°855153
naceroth
Posté le 21-09-2004 à 18:36:55  profilanswer
 

Bah oui, forcément, si tu renommes les boutons, t'étonnes pas que mon exemple marche pas :sarcastic:
 
(ce qui est marrant, c'est que même après correction, il suit pas les normes et intègre du jscript pour faire un truc idiot, y a des fois je me demande pourquoi on aide :D)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  2 boutons submits dans le même formulaire

 

Sujets relatifs
[HTML] probleme de formulairehelp access dupliquer un formulaire et repercuter les infos
Garder les champs remplis dans un formulaireUploader un fichier sur un ftp par formulaire HTML ?
Formulaire de contactAccès aux champs d'un formulaire dynamique
formulaire html pour modifier une page en tps réelformulaire et image css
[JS] Formulaire : choix entre 2 élémentsProbleme avec un formulaire en flash
Plus de sujets relatifs à : 2 boutons submits dans le même formulaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR