Nous sommes actuellement le 19 Avr 2024, 08:27

Le fuseau horaire est UTC-5 heures [Heure d’été]




Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 
Auteur Message
MessagePublié: 08 Juin 2008, 01:54 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 01 Déc 2002, 12:40
Message(s) : 1149
Localisation : Montréal
Salut!

J'ai deux pages présentement, et j'aimerais savoir si c'est possible, en PHP, de récupérer l'attribut 'name' du bouton submit sur lequel j'ai cliqué, et le mettre dans une variable.

Exemple:

Code :
Page 1
<input type='submit' name='bouton1' value='Valider'>
<input type='submit' name='bouton2' value='Valider'> ---> Je clique sur celui-ci
<input type='submit' name='bouton3' value='Valider'>


Code :
Page 2

J'obtiendrais le texte bouton2 sur cette page.



Merci!

_________________
ASUS P5B
Intel Core 2 Duo E6600
2 GB RAM Kingston DDR2 667Mhz
ASUS Geforce 8600GT 256MB RAM
1 x HDD Seagate 250GB SATA II
1 x HDD Seagate 500GB SATA II
Windows Vista Business 32 bit SP2


Haut
 Profil  
Répondre en citant  
MessagePublié: 09 Juin 2008, 21:25 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 09 Juin 2008, 21:16
Message(s) : 4
Un bouton submit n'est pas vraiment utilisé pour transmettre une valeur à une autre page ... Je ne connais pas le contexte de programmation que tu souhaites compléter, mais tu peux vérifier sur la page en PHP sur quel bouton l'utilisateur a cliqué et afficher du texte en conséquence ...

Code :
if ( $_POST['bouton1'] )
{
   echo 'Texte en lien avec mon bouton1';
}
elseif ( $_POST['bouton2'] )
{
   echo 'Texte en lien avec mon bouton2';
}
elseif ( $_POST['bouton3'] )
{
   echo 'Texte en lien avec mon bouton3';
}

A+


Haut
 Profil  
Répondre en citant  
MessagePublié: 09 Juin 2008, 21:40 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 01 Déc 2002, 12:40
Message(s) : 1149
Localisation : Montréal
J'vais donner un meilleur exemple:

J'ai un tableau qui affiche toutes les pièces (résultats) d'une base de donnée. Les boutons 'submit' ont la valeur ID de la pièce.
Code :
<tr><th># ID</th><th>Catégorie</th><th>Nom</th><th>Prix ($)</th></tr>
<?php
include('config.php');
$request = mysql_query("SELECT id,cat,nom,prix FROM pieces ORDER BY cat");

while($row = mysql_fetch_array($request))
{
   echo "<tr><td>".$row[id]."</td><td>".$row[cat]."</td><td><input type='text' name='upnom' size='10' value='".$row[nom]."'></td><td><input type='text' name='upprix' size='5' value='".$row[prix]."'></td><td><input type='submit' name='".$row[id]."' value='Mettre à jour'></td></tr>";
}


Mon but, c'est de pouvoir avoir un bouton 'Mettre à jour' pour chaque pièce (ligne) qui me permettrait de faire un UPDATE uniquement pour cette pièce (les colonnes "nom" et "prix" sont des champs modifiables).
Exemple:
Image

_________________
ASUS P5B
Intel Core 2 Duo E6600
2 GB RAM Kingston DDR2 667Mhz
ASUS Geforce 8600GT 256MB RAM
1 x HDD Seagate 250GB SATA II
1 x HDD Seagate 500GB SATA II
Windows Vista Business 32 bit SP2


Haut
 Profil  
Répondre en citant  
MessagePublié: 09 Juin 2008, 21:50 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 09 Juin 2008, 21:16
Message(s) : 4
Dans un vieux code, j'avais une messagerie interne pour un site, puis l'utilisateur pouvait sélectionner le message en cochant un checkbox pour sélectionner les messages qu'il voulait supprimer ... Tu peux faire le même principe, mais il doit sélectionner les lignes qu'il veut éditer ...
Code :
$nb = count($idpm);
   for($i = 0; $i < $nb; $i++)
   {
   $requete=mysql_query("DELETE FROM mp WHERE id=\"$idpm[$i]\"");
   }


Code :
<input type="checkbox" name="idpm[]" value="'.$id.'">


Dans ton cas, tu peux faire un update des champs avec cet Id ... Ou, encore plus simple, tu mets seulement un bouton à la fin "Mettre à jour", et tu fais un update de tous tes champs si ils ont eu une modification ... Ça serait la solution que je prendrais je crois ... mais bon, j'ai plus trop les idées claires après 8 heures de vérification de code à ma job ...

A+


Haut
 Profil  
Répondre en citant  
MessagePublié: 09 Juin 2008, 23:31 
Hors-ligne
Occasionnel
Occasionnel

Inscription : 18 Jan 2008, 09:04
Message(s) : 181
Pourquoi ne pas utiliser un simple form avec une "method=form" avec un action qui est supposons "mise_a_jour_piece.php" qui recevra en paramètre le ID, le nom modifiable ainsi que le prix modifiable?

Je remplacerais tous les attributs name pour des attributs ID et lorsque vous créez votre code HTML à partir de php à votre place je créerais les id avec le nom nom_leID, prix_leID, etc (exemple : nom_4)

Sur le bouton je mettrais aussi quelque chose du genre id="leID". Je changerais le type de bouton "submit" par "button" et je validerais en javascript avec une fonction du genre "validateClick(leIDduBouton)" *** sur le bouton ça serait onClick="javascript:validateClick(me.id);" *** en faisant un getAttributeByID des champs reliés au bouton cliqué et je créerais 3 champs hidden supplémentaires, soit idSelection, upnomSelection et upprixSelection que je remplirais avec les valeurs modifiables reliées au ID cliqué via le bouton "mettre à jour".

Exemple :
///////////////////////////////////////////////////////////////////////////////
var nomPiece = getElementById("nom_"+leIDduBouton").value;
var prixPiece = getElementById("prix_"+leIDduBouton").value;

document.nomDuForm.upnomSelection.value = nomPiece;
document.nomDuForm.upprixSelection.value = prixPiece;

document.nomDuForm.submit();
///////////////////////////////////////////////////////////////////////////////

Ce qui donnerait un code du genre dans "mise_a_jour_piece.php" :

$id= $_POST['id'Selection];
$nom = $_POST['upnomSelection'];
$prix = $_POST['upprixSelection'];

P.S. Si vous voulez garder les attributs name au lieu de id pour une raison que j'ignore le getAttributeByName aussi fonctionne... :wink:

_________________
XPS 720 Black Intel® Core™2 Q6600 Quad-Core (8MB L2 cache, 2.4GHz,1066 FSB) English
8GB Dual Channel DDR2 SDRAM at 667MHz- 4DIMMs Corsair
512MB Nvidia GeForce 8800 GT
320GB Performance RAID 0 (2 x 160GB Seagate SATA 3Gb/s 7200 RPM HDDs) / Windows
250GB SATA Seagate Barracuda 7200 RPM / Data
2 x 22 inch E228WFP Widescreen Digital Flat Panel
Windows 7™ Ultimate 64 Bits


Haut
 Profil  
Répondre en citant  
MessagePublié: 10 Juin 2008, 07:36 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 09 Juin 2008, 21:16
Message(s) : 4
Il est vrai qu'il est toujours mieux d'utiliser les attributs id ... La solution javascript est excellente!


Haut
 Profil  
Répondre en citant  
MessagePublié: 10 Juin 2008, 15:43 
Hors-ligne
Toujours là!
Toujours là!
Avatar de l’utilisateur

Inscription : 01 Déc 2002, 12:40
Message(s) : 1149
Localisation : Montréal
Hah! J'me souvenais plus que le Javascript pouvait être si efficace!
Problème résolu, merci beaucoup à vous deux!

_________________
ASUS P5B
Intel Core 2 Duo E6600
2 GB RAM Kingston DDR2 667Mhz
ASUS Geforce 8600GT 256MB RAM
1 x HDD Seagate 250GB SATA II
1 x HDD Seagate 500GB SATA II
Windows Vista Business 32 bit SP2


Haut
 Profil  
Répondre en citant  
MessagePublié: 10 Juin 2008, 20:06 
Hors-ligne
Petit nouveau
Petit nouveau

Inscription : 09 Juin 2008, 21:16
Message(s) : 4
Ouais, le javascript est quand même très fort pour faire des interactions du côté client :-)

A+


Haut
 Profil  
Répondre en citant  
MessagePublié: 13 Juin 2008, 02:08 
Hors-ligne
Fidèle
Fidèle

Inscription : 06 Jan 2003, 19:14
Message(s) : 689
Sinon, au lieu des boutons tu pourrais avoir des liens qui transmettraient tes variables en GET, ou bien chaque bouton ferait partie de son propre formulaire, et tu ajoutes un hidden field qui contient ce que tu veux.

_________________
Comparateur de prix informatique - InfoPrix.ca


Haut
 Profil  
Répondre en citant  
Afficher les messages publiés depuis :  Trier par  
Publier un nouveau sujet Répondre au sujet  [ 9 message(s) ] 

Le fuseau horaire est UTC-5 heures [Heure d’été]


Qui est en ligne ?

Utilisateur(s) parcourant ce forum : Aucun utilisateur inscrit et 4 invité(s)


Vous ne pouvez pas publier de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum

Recherche de:
Aller vers :  
cron
Propulsé par phpBB® Forum Software © phpBB Group
Traduction et support en françaisHébergement de site