Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/10/2007, 15h12   #1
Membre habitué
 
Inscription : octobre 2007
Messages : 177
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2007
Messages : 177
Points : 138
Points : 138
Par défaut [POO] Récupérer nom d'un bouton

Bonjour à tous,

Voilà je voulais savoir s'il était possible de récupérer la valeur du nom d'un bouton grace a PHP, en sachant que ce bouton à un nom qui est le résultat d'un requete sql.
Je m'explique : j'essaie de faire un script php (et mysql) pour modifier un menu dynamiquement.
J'utilise 3 champs : id , nom et url.
J'affiche une ligne avec le numéro ID, le nom du lien, l'url et enfin un bouton "Modifier" dont le name="nom du lien" (requete sql).

J'aimerai récupérer la valeur du nom du bouton pour ensuite effectuer une seconde requete qui remplira les valeurs par défaut d'un formulaire (pour modifier les données).

Si vous avez une autre solution je suis preneur ^^
Merci d'avance
umeboshi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 15h23   #2
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
si ton bouton à pour nom "blabla", alors tu trouveras $_GET['babla'] qui aura la valeur "Modifier" (le texte affiché sur le bouton)
tu peux tester si la case existe dans le tableau comme ça :
Code :
1
2
3
if (isset($_GET['blabla'])) {
    // on a cliqué sur "Modifier"
}
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 15h44   #3
Membre habitué
 
Inscription : octobre 2007
Messages : 177
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2007
Messages : 177
Points : 138
Points : 138
Avec le code ça sera peut être mieux :

Page qui affiche tous les liens + un bouton Modifier.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
$sql_menu = 'SELECT * FROM menu'; // requete sql
		$req_menu = mysql_query($sql_menu) or die('Erreur SQL !<br>'.$sql_menu.'<br>'.mysql_error());
 
		while($data_menu = mysql_fetch_assoc($req_menu))  // affiche le menu
			{echo'
					<tr>
						<td>'.$data_menu['id'].'</td>
						<td>'.$data_menu['nom'].'</td>
						<td><a href='.$data_menu['lien'].'>'.$data_menu['lien'].'</a></td>
						<td><input type="submit" value="Modifier" name='.$data_menu['nom'].'></td>
					</tr>
				';}
Quand on clique sur Modifier j'aimerai que ça redirige vers une page avec un formulaire, qui serait déjà renseigné avec les valeurs actuelles (par défaut).

> Mathieu, je comprends pas comment utilisé ton code (jsui encore un nioubish en PHP ^^)
umeboshi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 16h53   #4
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 330
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 330
Points : 1 659
Points : 1 659
Le mieu serai que tu mette le nom de ton lien dans un champ caché (hidden) comme

Code html :
<input type="hidden" name="nomlien" value="'.$data_menu['nom'].'" />

Et comme ça tu peux récupérer le nom avec $_POST['nomlien'] ou $_GET['nomlien']
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 17h10   #5
Membre habitué
 
Inscription : octobre 2007
Messages : 177
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2007
Messages : 177
Points : 138
Points : 138
yes ^^

Ca fonctionne impec' comme ça
(j'étais en train de chercher un moyen de faire un while et récupérer la valeur du champs, et là avec un hidden ça passe tout seul et c'est beaucoup plus simple)
Merci Seb33300
umeboshi est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 17h18   #6
Candidat au titre de Membre du Club
 
Inscription : octobre 2007
Messages : 13
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 13
Points : 13
Points : 13
//ta résolu ton probleme entre temps

Bonjour,
j'ai relu ta question et je pense avoir cerné ce que tu veux.

Comme tu le dis toi même : "Quand on clique sur Modifier j'aimerai que ça redirige vers une page avec un formulaire, qui serait déjà renseigné avec les valeurs actuelles (par défaut)."

Je vois donc deux étapes :

Etape 1 : Vire le submit et remplace le par un lien qui pointe vers par exemple une page modifier.php (c'est la page qui contient ton formulaire de modif)

Code :
1
2
 
<td><a href=\"modifier.php?menu_id=".$data_menu['id']."\">modifier</a></td>
Explications : Tu appelles la page modifier.php, en lui passant en get le paramètre menu_id qui vaut ici $data_menu['id']

Etape 2 : la page modifier.php
Dans cette page tu récupère la valeur passer en paramètre comme te la indiqué mathieu, puis tu refais une requete sur ta base et enfin tu affiche les données dans ton formulaire
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
if (isset($_GET['menu_id'])) {
$menu_id = $_GET['menu_id'];
$sql_menu = 'SELECT nom, lien FROM menu WHERE id='.$menu_id; // requete sql
$req_menu = mysql_query($sql_menu) or die('Erreur SQL !<br>'.$sql_menu.'<br>'.mysql_error());
while($data_menu = mysql_fetch_assoc($req_menu))
{
//ici tu remplis ton form
$form = "<form method=\"POST\" action=\"modifier.php\" name=\"modifier_menu\">";
$form .= "<input type=\"hidden\" name=\"id\" value=\"".$menu_id."\">";
$form .= "<input type=\"text\" name=\"nom\" value=\"".$data_menu['nom']."\">";
$form .= "<input type=\"text\" name=\"lien\" value=\"".$data_menu['lien']."\">";
$form .= "<input type=\"submit\" value=\"Valider\">";
$form .= "</form>";
echo $form;
}
}
Ensuite dans ta page tu rajoute le traitement que tu veux faire sur ton form ce qui va te donner un truc du genre :
Code :
1
2
3
4
5
6
7
8
9
 
if(isset($_POST['valider']))
{
$requete = "UPDATE menu SET nom=".mysql_real_escape_string($_POST['nom']).", ";
$requete .= "lien=".mysql_real_escape_string($_POST['lien'])." WHERE id=".$_POST['id'];
 
//ta plus qu'a executé ta requete
 
}
C'est une méthode parmis d'autres, on aurait aussi pu faire un formulaire dès le départ mais cela aurait été plus complexe, la solution présentée ici à l'avantage d'être très simple

PS :dès que tu sera au point je te conseille de te mettre à la poo, une bonne class Menu serait bien plus avantageuse à l'utilisation
Capucine21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h03.


 
 
 
 
Partenaires

Hébergement Web