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

  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [html] Problème sur un formulaire avec plusieurs boutons submit

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[html] Problème sur un formulaire avec plusieurs boutons submit

n°1933190
Seth_
I warn you, I'm armed !
Posté le 19-10-2009 à 15:01:37  profilanswer
 

Bonjour à tous :hello:
 
J'ai hésité à poster dans la catégorie PHP, mais à mon avis c'est au niveau de formulaire et donc du html que ça déconne [:klemton]
Voila mon souci : j'ai un mini-site tout bidon osefcépagrav qui permet de faire des fiches.
Plusieurs utilisateurs ont accès à ma base de données. Première page : authentification, une fois cette page passée, on affiche la liste des fiches existantes et en fonction de l'auteur des dîtes fiches, les actions possibles ne sont pas les mêmes :
http://img5.yfrog.com/img5/1739/pwetn.jpg
(j'utilise de vrais noms, alors je les ai cachés)
Là par exemple, je suis connecté avec l'utilisateur D. Si je clique sur Lire, ça fonctionne, je récupère bien la page que je veux. Modifier et Supprimer, pareil.
 
Par contre si je clique sur le Lire des autres lignes, je vois toujours celle de l'utilisateur D :/
Si je change d'utilisateur, le problème reste le même. Chaque bouton ramène vers la fiche de l'utilisateur connecté.
J'ai aussi un utilisateur Administrateur qui lui peut normalement tout faire (voir, éditer, supprimer), mais alors lui ne voit que la dernière fiche créée (celle de l'utilisateur F) [:prozac]
 
Voici le code du formulaire où il y a la liste :

Code :
  1. <body>
  2.     <form action="modify.php" method="post">
  3.         <table id="liste">
  4.             <tr>
  5.                 <th>
  6.                      Titre de la fiche |
  7.                 </th>
  8.                 <th>
  9.                       Date de la dernière modification |
  10.                 </th>
  11.                 <th>
  12.                       Auteur de la fiche |
  13.                 </th>
  14.                 <th colspan="3">
  15.                       Actions disponibles
  16.                 </th>
  17.             </tr>
  18.     <?php
  19.     $co = new PDO('mysql:host=127.0.0.1;dbname=pwet', $_SESSION['login'], $_SESSION['pwd']); //connexion à la bdd     
  20.    
  21.     $liste=$co->query("SELECT id, owner, date_redac, nom FROM fiche ORDER BY id ASC";); //affiche l'id, l'auteur, la date de rédaction, titre depuis la table 'fiche' triés par id ascendants.
  22.     $liste->setFetchMode(PDO::FETCH_OBJ); //retourne les résultats sous type objet.     
  23.     while($tri=$liste->fetch()){ //boucle qui affiche le titre, l'auteur et la date de rédaction.
  24.     ?>
  25.         <?php
  26.             $liste_date = $tri->date_redac;
  27.             list($yyyy, $mm, $dd) = explode("-", $liste_date);
  28.             $liste_date = "$dd-$mm-$yyyy";
  29.         ?>   
  30.                <tr style="<?php if($utilisateur == $tri->owner){
  31.                                 echo "background-color: #b5e2f9;";
  32.                               }else{
  33.                                 echo "background-color: #ff8c8c;";
  34.                             }
  35.                             if($utilisateur == "Administrateur";){
  36.                                 echo "background-color: #9cff8c";
  37.                             }?>">
  38.             <?php if($utilisateur == $tri->owner || $utilisateur == "Administrateur";){?>
  39.             <td>
  40.                 <?php echo $tri->nom;?>
  41.             </td>
  42.             <td>
  43.                 <?php echo $liste_date;?>
  44.             </td>
  45.             <td>
  46.                 <?php echo $tri->owner;?>
  47.             </td>
  48.             <td colspan="3">
  49.                 <input type="hidden" name="id_select" value="<?php echo $tri->id;?>" />
  50.                 <input type="submit" name="voirfiche" value="Lire" />
  51.                 <input type="submit" name="fiche_to_modify" value="Modifier" />
  52.                 <input type="submit" name="fiche_to_delete" value="Supprimer" />
  53.             </td>
  54.         <?php } else { ?>
  55.             <td>
  56.                 <?php echo $tri->nom;?>
  57.             </td>
  58.             <td>
  59.                 <?php echo $liste_date;?>
  60.             </td>
  61.             <td>
  62.                 <?php echo $tri->owner;?>
  63.             </td>
  64.             <td colspan="3">
  65.                 <input type="submit" name="voirfiche" value="Lire" />
  66.             </td>
  67.         <?php
  68.         }
  69.     }
  70.     $liste->closeCursor(); //on ferme le curseur.
  71.     ?>
  72.             </tr>
  73.         </table>
  74.     </form>
  75. </body>


Normalement, l'id de ma fiche devrait être récupéré puis envoyé à la page suivante (modify.php). Est-ce qu'il y a une transformation du type de la variable à faire (id qui sert dans une requête mysql pour appeler les bonnes données en fonction de l'id fourni) ?
Je vous avouerai que c'est un peu flou pour moi tout ça (le changement de type) :/
 
Je me doute que ça chie au niveau des multiples boutons submit, mais je ne vois pas comment corriger ça tout en gardant la mise en page et la navigation actuelle :??:
 
Des idées ?
Merci :jap:


Message édité par Seth_ le 19-10-2009 à 15:03:40
mood
Publicité
Posté le 19-10-2009 à 15:01:37  profilanswer
 

n°1933286
rufo
Pas me confondre avec Lycos!
Posté le 19-10-2009 à 16:07:46  profilanswer
 

si tu fais un print_r($_POST); dans modify.php, quelles variables de ton formulaire vois-tu?


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1933312
Seth_
I warn you, I'm armed !
Posté le 19-10-2009 à 16:42:30  profilanswer
 

Merci d'avoir répondu :jap:
 
Si je clique sur Lire j'obtiens : "Array( [id_select] => 74 [voirfiche] => Lire )" et ce, quelque soit le bouton "Lire" sur lequel je clique. 74 étant l'id de la fiche rédigée par l'utlisateur connectée à ce moment là. Si je change d'utilisateur, je vois l'id de la fiche qu'il a rédigé.
 
Pour Modifier, j'ai : Array ( [id_select] => 74 [fiche_to_modify] => Modifier ).
 
 
:??:

n°1933325
pataluc
Posté le 19-10-2009 à 16:53:11  profilanswer
 

je peux me tromper, mais je pense qu'il ne faut pas utiliser de formulaire dans ce cas précis, mais juste des lien avec variables... (après si visuellement du veux des boutons, tu utilise <button> épicétou! :D)  
 
voili voilou...

n°1933343
Seth_
I warn you, I'm armed !
Posté le 19-10-2009 à 17:08:50  profilanswer
 

Effectivement, ça marche comme ça !
Merci pataluc :jap:
 
edit : Pour être précis, il faut laisser le formulaire (pour indiquer où se situent les actions correspondantes aux boutons), mais il faut enlever les input type="submit" et les remplacer par des <button name="blabla" value="l'id de la fiche"> TEXTE </button>
 
 
:jap:


Message édité par Seth_ le 19-10-2009 à 17:14:25
n°1933573
rufo
Pas me confondre avec Lycos!
Posté le 20-10-2009 à 10:28:09  profilanswer
 

ton pb vient du fait que ton champ caché "id_select" est dupliqué autant de fois que t'as de lignes dans ton table, donc je pense que le navigateur envoi soit le premier soit le dernier, mais toujours le même. en mettant un nom style "id_select[]", ça le ferait, ou alors, "id_select" concaténé à l'id pour avoir "id_select74" par ex.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1933574
pataluc
Posté le 20-10-2009 à 10:31:33  profilanswer
 

rufo a écrit :

ton pb vient du fait que ton champ caché "id_select" est dupliqué autant de fois que t'as de lignes dans ton table, donc je pense que le navigateur envoi soit le premier soit le dernier, mais toujours le même. en mettant un nom style "id_select[]", ça le ferait, ou alors, "id_select" concaténé à l'id pour avoir "id_select74" par ex.


ouais spa faux, mais son problème il vient surtout du fait qu'un formulaire, c'est pas fait pour naviguer entre des pages, mais pour envoyer des données. donc il devrait juste utiliser des liens normaux... :spamafote:


Message édité par pataluc le 20-10-2009 à 10:31:46
n°1933633
rufo
Pas me confondre avec Lycos!
Posté le 20-10-2009 à 13:13:13  profilanswer
 

Oui, bien d'accord mais en même temps, on peut considérer qu'un lien avec des paramètres, c'est un formulaire. En tout cas, PHP le traite comme tel avec $_GET.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  HTML/CSS

  [html] Problème sur un formulaire avec plusieurs boutons submit

 

Sujets relatifs
[ejb] petit probleme avec le context.lookup()Poster un formulaire quand on clique sur un bouton radio
Changement automatique d'une ligne sur chaque page htmlProblème de conception ?
Javascript dans commentaire HTML ou <noscript> ??Pb javascript et formulaire avec validation par touche entrée
Choisir plusieurs fichiers pour un htaccess?[resolu] Formulaire avec upload qui renomme mon fichier
.css probleme compatibilité serveur - detecté via dreamweaverProblème de virus sur ce site ? Merci
Plus de sujets relatifs à : [html] Problème sur un formulaire avec plusieurs boutons submit


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