Boutons multiples et PHP

Résolu/Fermé
-syroz- Messages postés 31 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 27 février 2010 - 26 juin 2009 à 16:46
-syroz- Messages postés 31 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 27 février 2010 - 2 juil. 2009 à 15:51
Bonjour à tous,

je vous explique la situation. Je me monte un site où je crée moi-même les fonctions administratives et je bloque devant le problème suivant. L'administrateur aura dans sa page une liste d'usagers qui sont dans un form. Pour chaque usager, je met deux boutons (modifier et supprimer).
Ce que je veux savoir est: comment faire en php pour retrouver quel bouton a été cliqué?
Ce que je veux faire est de rappeler la même page avec qui traitera différemment l'usager selon que le bouton modifier ou supprimer a été cliquer.

Je vous fournit mon form.

<form id="listeJoueurs" name="listeJoueurs" method="post" action="joueurs.php">
  <table width="200" border="1" cellpadding="0" cellspacing="10">
    <tr>
      <th scope="col"><span class="style3"></span></th>
      <th scope="col"><span class="style3">Nom</span></th>
      <th scope="col"><span class="style3">Prénom</span></th>
      <th scope="col"><span class="style3">Modifier</span></th>
      <th scope="col"><span class="style3">Supprimer</span></th>
    </tr>
    <tr>
      <td><span class="style3"><input type="hidden" value="1" />
</span></td>
      <td>unNom</td>
      <td>unPrenom</td>
      <td><span class="style3">
        <input type="submit" name="modifier" id="modifier" value="Modifier" />
      </span></td>
      <td><input type="submit" name="supprimer" id="supprimer" value="Supprimer" /></td>
    </tr>
  </table>
</form>
A voir également:

10 réponses

giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
26 juin 2009 à 17:16
bonsoir,

essaie ceci (même name pour les deux boutons)
<td><span class="style3">
<input type="submit" name="action" id="modifier" value="Modifier" />
</span></td>
<td><input type="submit" name="action" id="supprimer" value="Supprimer" /></td>
0
-syroz- Messages postés 31 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 27 février 2010
26 juin 2009 à 17:23
Je te remercie pour la réponse rapide,

je teste ca et je te reviens là dessus, mais ca a du bon sens.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
26 juin 2009 à 17:34
on peut aussi changer la valeur de value et/ou de l'action du fromulaire avec un javascript et une option onclick sur les boutons
0
-syroz- Messages postés 31 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 27 février 2010
26 juin 2009 à 17:39
Tout ce qui me reste a faire est de récupérer les id?
En fait, ma page se séparera en 2 pour traiter différemment les données selon que ce soit modifier ou supprimer.

Est-ce que je pourrais faire quelque chose du genre? (je sais que c'est probable que non)
if($_POST['action'].id = 'modifier'){
   // Traitement de modification
else if($_POST['action'].id = 'supprimer'){
   // Traitement de suppression
}


Je comprend bien pourquoi mettre le même nom aux deux boutons, de ce côté, il n'y a pas de problèmes. Donc en gros ma question est, comment les différencier ensuite?

Merci d'avance
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
26 juin 2009 à 17:44
on ne passe que l'un ou l'autre donc un seul name et on teste le contenu comme suit:
(sans .id que tupeux enlever dans le formulaire; id là fait référence à un poste du css )

if($_POST['action'] = 'modifier'){
// Traitement de modification
else if($_POST['action'] = 'supprimer'){
// Traitement de suppression
}


éventuellement pour vérifier ce que tu reçois tu faia au début de jouer.php
echo "<pre>";print_r($_POST);echo "</pre>";
0
-syroz- Messages postés 31 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 27 février 2010
27 juin 2009 à 05:46
Merci beaucoup, ça m'aide vraiment. Comme tu as l'air plutôt doué, j'aimerais te soumettre un autre problème concernant le même projet.

Je mets 2 boutons (modif et supp) pour chaque joueur, ce qui donne ceci:

<form id="listeJoueurs" name="listeJoueurs" method="post" action="/content/joueurs.php">
	<table width="200" border="0" cellpadding="0" cellspacing="10">
		<tr>
			<th scope="col"></th>
			<th scope="col">Nom</th>
			<th scope="col">Prénom</th>
			<th scope="col">Modifier</th>
			<th scope="col">Supprimer</th>
		</tr>
		<tr>
			<td><input type="hidden" value="1" /></td>
			<td>Lemay</td>
			<td>Julien</td>
			<td><input type="submit" name="action" id="modifier" value="Modifier" /></td>
			<td><input type="submit" name="action" id="supprimer" value="Supprimer" /></td>
		</tr>
		<tr>
			<td><input type="hidden" value="2" /></td>
                        <td>Lemay</td>
			<td>Matt</td>
			<td><input type="submit" name="action" id="modifier" value="Modifier" /></td>
			<td><input type="submit" name="action" id="supprimer" value="Supprimer" /></td>
		</tr>
		<tr>
			<td><input type="hidden" value="3" /></td>
			<td>Lemay</td>
			<td>??tienne</td>
			<td><input type="submit" name="action" id="modifier" value="Modifier" /></td>
			<td><input type="submit" name="action" id="supprimer" value="Supprimer" /></td>
		</tr>
		<tr>
			<td><input type="hidden" value="4" /></td>
			<td>Malo</td>
			<td>Sylvain</td>
			<td><input type="submit" name="action" id="modifier" value="Modifier" /></td>
			<td><input type="submit" name="action" id="supprimer" value="Supprimer" /></td>
		</tr>
		<tr>
			<td><input type="hidden" value="5" /></td>
			<td>melo</td>
			<td>Sylvain</td>
			<td><input type="submit" name="action" id="modifier" value="Modifier" /></td>
			<td><input type="submit" name="action" id="supprimer" value="Supprimer" /></td>
		</tr>
	</table>
</form>


Le hidden field est mon id reçu de la BD. Ce que je veux faire est de reprendre la valeur du hidden field pour modifier/supprimer seulement l'enregistrement de la ligne où le bouton a été cliqué. Comment faire pour seulement traiter l'enregistrement de la ligne où le bouton a été cliqué?

J'ai lu quelque part que je pourrais faire un form pour chaque enregistrement, mais je ne trouve pas ca propre du tout.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
2 juil. 2009 à 10:22
Bonjour,
j'étais absent; mission professionnelle.
Si j'ai bien compris ton soucis, il faut mettre un name au champ input hidden, pour le récupérer ensuite.

<td><input type="hidden" value="3" name=joueur></td>

ceci sera récupéré dans $_POST['joueur'];
0
-syroz- Messages postés 31 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 27 février 2010
2 juil. 2009 à 14:54
D'accord, mais est-ce que $POST['joueur'] récupérera seulement le champs hidden de ligne où le bouton a été cliqué?

Je comprend très bien comment choisir l'action selon le bouton cliqué, mais l'utilisation du bon champs hidden reste flou dans ma tête.
0
giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
2 juil. 2009 à 15:09
non, l'application récupérera tous les champ hidden.
le mieux serait de faire une suite de formulaire : un par joueur
chaque bouton de type submit des formulaires fera appel à la même action et là on aura que les valeurs du formulaire sur lequel le bouton sublit aura été validé.

pour savoir ce que l'on récpère dans le script lancé par le submit et pendant la phase de test, met au début de celui ci :
echo "<pre>";print_r($_POST);echo "</pre>";

0
-syroz- Messages postés 31 Date d'inscription mardi 18 mars 2008 Statut Membre Dernière intervention 27 février 2010
2 juil. 2009 à 15:51
Je te remercie beaucoup tes judicieux conseils. Je pourrai facilement les mettre en application.
0