Récupérer la valeur d'un bouton sur lequel on a cliqué

Fermé
clement - 15 juil. 2015 à 08:58
 clement - 15 juil. 2015 à 10:56
Bonjour,
J'ai une base de données contenant deux colonnes : "titre" et "contenu". Mon but est d'afficher tous les titres sur la première page, et lorsque l'utilisateur cliquera sur un des titres j'aimerai récupérer cette valeur et afficher sur une deuxième page tous les contenus qui en dépendent.

Pour cela je crée un input de type "submit" dont la valeur affichée est mon titre. Mon problème est que je n'arrive pas à récupérer la valeur du titre sur lequel j'ai cliqué.

Si quelqu'un a une idée de la façon dont on peut faire cela je serai intéressé.

Merci d'avance

Voici le code que j'ai déjà réalisé



<html>
<body>

<?php

//permet d'utiliser les fonctions de ce fichier
require ('fonctions.php');

//connexion à la base de données (fonction contenue dans 'fonctions.php')
connexionDB();

//TITRE DE LA PAGE
echo "<center><h2>Affichage des titres </h2></center>";


//requete qui sélectionne les titres
$select = 'SELECT DISTINCT titre FROM prod_bex ORDER BY titre ASC';
$result = mysql_query($select) or die ('Erreur : '.mysql_error() );


//fonction d'affichage des boutons
while( $row=mysql_fetch_assoc($result) )
{
?>
<tr>
<center><input name="titre" type='submit' value='<?php echo $row['titre']; ?>' style="width: 150px; padding: 2px;
text-align: center; border: 2px solid Gray;"
onMouseOver="style.backgroundColor='lightgreen';"
onMouseOut="style.backgroundColor='#FFFFFF'"
onClick="self.location='test2.php'">
</tr>
<?php
}

//fonction qui récupère la valeur de la case cliquée
if(isset($_POST['titre']))
{
$champ=$_POST['titre'];
}
echo "titre = ".$champ;
?>

</body>
</html>
A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
15 juil. 2015 à 10:40
Salut,

Tu essayes de récupérer le titre en POST via un bouton submit mais tu n'as aucun formulaire dans ta page.

A la place je te conseil d'utiliser des liens avec un paramètre GET pour récupérer le titre :
//fonction d'affichage des boutons
while($row=mysql_fetch_assoc($result) )
{
?>
<a href="test2.php?titre=<?php echo htmlspecialchars($row['titre']); ?>">
    Lire l'article <?php echo htmlspecialchars($row['titre']); ?>
</a>
<?php
}

//fonction qui récupère la valeur de la case cliquée
if(isset($_GET['titre']))
{
    echo htmlspecialchars($_GET['titre']);
} 


Bonne journée
0
Merci indéfiniment !!! ça ne devait pas être compliqué mais comme je débute en php je ne trouvais pas la solution.
0
nichola Messages postés 111 Date d'inscription jeudi 7 juin 2007 Statut Membre Dernière intervention 24 avril 2016 11
15 juil. 2015 à 10:41
Salut,

Il faudrait encapsuler ton input dans un formulaire avec une action du type post pour pouvoir récupérer les données, voilà un exemple simple:

https://www.php.net/manual/fr/tutorial.forms.php
0
Thorak83 Messages postés 1051 Date d'inscription jeudi 20 juin 2013 Statut Membre Dernière intervention 22 décembre 2017 156
15 juil. 2015 à 10:43
Bonjour,
La façon de faire est très bizarre. Mais bon.
Pour récupérer la variable en $_POST il faudrait l'envoyer un travers un formulaire. Hors vous en avez pas. Seulement des boutons qui lance un Javascript que va chercher une page test2.php.

Sinon si vous voulez continuer comme cela, ajouter la variable à transmettre dans l'URL comme ceci:
onClick="self.location='test2.php?titre='<?php echo $row['titre']; ?>'"


pour récupérer la variable faire :
$champ=$_GET['titre'];
0